CMSampleBufferCreateForImageBuffer(allocator:imageBuffer:dataReady:makeDataReadyCallback:refcon:formatDescription:sampleTiming:sampleBufferOut:)

Horus-iOS·2022년 8월 17일
0

https://developer.apple.com/documentation/coremedia/1489414-cmsamplebuffercreateforimagebuff

Creates a sample buffer with an image buffer and a callback to make the data ready for use.

이미지 버퍼와 사용을 위한 데이터 준비 콜백을 사용해서 샘플 버퍼를 생성합니다.

Declaration

func CMSampleBufferCreateForImageBuffer(
    allocator: CFAllocator?,
    imageBuffer: CVImageBuffer,
    dataReady: Bool,
    makeDataReadyCallback: CMSampleBufferMakeDataReadyCallback?,
    refcon makeDataReadyRefcon: UnsafeMutableRawPointer?,
    formatDescription: CMVideoFormatDescription,
    sampleTiming: UnsafePointer<CMSampleTimingInfo>,
    sampleBufferOut: UnsafeMutablePointer<CMSampleBuffer?>
) -> OSStatus

Parameters

allocator
CMSampleBuffer 객체 할당을 위해 사용하는 할당자입니다. kCFAllocatorDefault를 전달해 기본값 할당자를 사용합니다.

imageBuffer
미디어 데이터를 위한 CVImageBuffer입니다. 컨텐트가 렌더되지 않은 것을 갖고 있는 CVImageBuffer가 될 수 있으며, 미디어 데이터를 이미 포함하고 있는(dataReadytrue인 경우여야 함) CVImageBuffer가 될 수도 있습니다. NULL은 아닐 것입니다.

dataReady
CVImageBuffer가 이미 미디어 데이터를 포함하고 있는지 여부를 나타냅니다.

makeDataReadyCallback
데이터가 준비될 수 있도록 CMSampleBufferMakeDataReady(_:)가 호출해야 하는 콜백입니다.

makeDataReadyRefcon
Refcon CMSampleBufferMakeDataReady(_:)가 콜백으로 전달해야 합니다.

formatDescription
미디어 데이터 포맷의 설명입니다. 제약에 대한 설명알 참고하시기 바랍니다. NULL은 아닐 것입니다.

sampleTiming
CVImageBuffer에 의해 나타나는 미디어에 대한 타이밍 정보를 제공하는 CMSampleTimingInfo 구조체입니다.

sBufOut
아웃풋 시점에 CVImageBuffer를 포함하는 새롭게 생성된 CMSampleBuffer를 가리킵니다.

Return Value

결과 코드입니다. Sample Buffer Error Codes를 보시기 바랍니다.

Sample Buffer Error Codes
https://developer.apple.com/documentation/coremedia/cmsamplebuffer/1495039-sample_buffer_error_codes

Discussion

여러 샘플을 참조할 수 있는 CMBlockBuffer와 달리 CVImageBuffer는 오직 하나의 샘플만을 참조할 수 있도록 정의됩니다. 그렇기 때문에 이 루틴은 CMSampleBufferCreate보다 더 적은 파라미터를 갖습니다. CMSampleBufferCreate에 대한 벡터인 샘플 타이밍 정보는 이 루틴에서 오직 하나의 값만을 구성합니다. 샘플 크기의 컨셉여느 CVImageBuffers에 적용하지 않습니다. CMSampleBufferGetSampleSizeArray(_:entryCount:arrayToFill:entriesNeededOut:)kCMSampleBufferError_BufferHasNoSampleSizes를 반환하는 것과 유사하며, CMSampleBufferGetSampleSize(_:at:)이 0을 반환하는 것과 유사합니다.

CVImageBuffer가 시각적 데이터를 가지고 있기 때문에 제공된 포맷 설명은 CMVideoFormatDescription입니다. 포맷 설명은 특성과 일치해야 하며, CVImageBuffer에 붙은 형식 정보와 일치해야 합니다. 넓이, 높이, codecType은 일치해야 합니다(CVPixelBuffer에 대해서 코닥 타입은 CVPixelBufferGetPixelFormatType(pixelBuffer)에 의해 주어지며, 다른 CVImageBuffer의 경우 codecType은 0이 되어야 함). 포맷 설명 확장은 CMVideoFormatDescriptionGetExtensionKeysCommonWithImageBuffers에 의해 반환되는 리스트에 있는 모든 키에 대한 이미지 버퍼 첨부와 일치해야 합니다. 둘 중 한 가지에 없는 경우 둘 모두에 있어야 합니다.

0개의 댓글