Type Alias

VTCompressionOutputCallback

Prototype for the callback invoked when frame compression is complete.

Declaration

typedef void (*VTCompressionOutputCallback)(void *outputCallbackRefCon, void *sourceFrameRefCon, OSStatus status, VTEncodeInfoFlags infoFlags, CMSampleBufferRef sampleBuffer);

Parameters

outputCallbackRefCon

The callback's reference value.

sourceFrameRefCon

The frame's reference value, copied from the sourceFrameRefCon argument to VTCompressionSessionEncodeFrame.

status

noErr if compression was successful; an error code if compression was not successful.

infoFlags

Contains information about the encode operation.

The kVTEncodeInfo_Asynchronous bit may be set if the encode ran asynchronously.

The kVTEncodeInfo_FrameDropped bit may be set if the frame was dropped.

sampleBuffer

Contains the compressed frame if compression was successful and the frame was not dropped; otherwise, NULL.

Discussion

When you create a compression session, you pass in a callback function to be called for compressed frames. This function is called in decode order (which is not necessarily the same as display order).