Function

CMSampleBufferGetSampleTimingInfoArray

Retrieves an array of CMSampleTimingInfo structs, one for each sample in a CMSampleBuffer.

Declaration

OSStatus CMSampleBufferGetSampleTimingInfoArray(CMSampleBufferRef sbuf, CMItemCount numSampleTimingEntries, CMSampleTimingInfo *timingArrayOut, CMItemCount *timingArrayEntriesNeededOut);

Parameters

sbuf

The CMSampleBuffer being interrogated.

timingArrayEntries

Number of entries in timingArray.

timingArrayOut

On output, points to an array of CMSampleTimingInfo structs to receive the timing info.

timingArrayEntriesNeededOut

Number of entries needed for the result.

Return Value

A result code. See Result Codes.

Discussion

If only one CMSampleTimingInfo struct is returned, it applies to all samples in the buffer. See documentation of CMSampleTimingInfo for details of how a single CMSampleTimingInfo struct can apply to multiple samples.

The timingArrayOut must be allocated by the caller, and the number of entries allocated must be passed in timingArrayEntries. If timingArrayOut is NULL, timingArrayEntriesNeededOut will return the required number of entries. Similarly, if timingArrayEntriesNeededOut is too small, CMSampleBuffer will be returned, and timingArrayEntriesNeededOut will return the required number of entries. In either case, the caller can then make an appropriately-sized timingArrayOut and call again. For example, the caller might pass the address of a CMSampleTimingInfo struct on the stack (as timingArrayOut), and 1 as timingArrayEntries. If all samples are describable with a single CMSampleTimingInfo struct (or there is only one sample in the CMSampleBuffer), this call will succeed. If not, it will fail, and will return the number of entries required in timingArrayEntriesNeededOut. Only in this case will the caller actually need to allocate an array. If there is no timingInfo in this CMSampleBuffer, CMSampleBuffer will be returned, and timingArrayEntriesNeededOut will be set to 0.

See Also

Inspecting Sample Buffers

CMSampleBufferGetDataBuffer

Returns a CMSampleBuffer's CMBlockBuffer of media data.

CMSampleBufferGetDecodeTimeStamp

Returns the numerically earliest decode timestamp of all the samples in a CMSampleBuffer.

CMSampleBufferGetDuration

Returns the total duration of a CMSampleBuffer.

CMSampleBufferGetFormatDescription

Returns the format description of the samples in a CMSampleBuffer.

CMSampleBufferGetImageBuffer

Returns a sample buffer's CVImageBuffer of media data.

CMSampleBufferGetNumSamples

Returns the number of media samples in a CMSampleBuffer.

CMSampleBufferGetOutputDecodeTimeStamp

Returns the output decode timestamp of the CMSampleBuffer.

CMSampleBufferGetOutputDuration

Returns the output duration of a CMSampleBuffer.

CMSampleBufferGetOutputPresentationTimeStamp

Returns the output presentation timestamp of the CMSampleBuffer.

CMSampleBufferGetOutputSampleTimingInfoArray

Retrieves an array of output CMSampleTimingInfo structs, one for each sample in a CMSampleBuffer.

CMSampleBufferGetPresentationTimeStamp

Returns the numerically earliest presentation timestamp of all the samples in a CMSampleBuffer.

CMSampleBufferGetSampleAttachmentsArray

Returns a reference to a CMSampleBuffer's immutable array of mutable sample attachments dictionaries (one dictionary per sample in the CMSampleBuffer).

CMSampleBufferGetSampleSize

Returns the size in bytes of a specified sample in a CMSampleBuffer.

CMSampleBufferGetSampleSizeArray

Retrieves an array of sample sizes, one for each sample in a CMSampleBuffer.

CMSampleBufferGetSampleTimingInfo

Retrieves a CMSampleTimingInfo struct describing a specified sample in a CMSampleBuffer.

CMSampleBufferGetTotalSampleSize

Returns the total size in bytes of sample data in a CMSampleBuffer.

CMSampleBufferHasDataFailed

Indicates if the sample buffer's data loading request has failed.

CMSampleBufferDataIsReady

Determines if the sample buffer's data is ready.

CMSampleBufferIsValid

Queries whether a sample buffer is still valid.

CMSampleBufferGetTypeID

Returns the CFTypeID of CMSampleBuffer objects.