Function VTCompressionSessionEncodeFrame

Source
pub unsafe extern "C-unwind" fn VTCompressionSessionEncodeFrame(
    session: &VTCompressionSession,
    image_buffer: &CVImageBuffer,
    presentation_time_stamp: CMTime,
    duration: CMTime,
    frame_properties: Option<&CFDictionary>,
    source_frame_refcon: *mut c_void,
    info_flags_out: *mut VTEncodeInfoFlags,
) -> i32
Available on crate features VTErrors and objc2-core-media and objc2-core-video and VTCompressionSession only.
Expand description

Call this function to present frames to the compression session. Encoded frames may or may not be output before the function returns.

The client should not modify the pixel data after making this call. The session and/or encoder will retain the image buffer as long as necessary.

Parameter session: The compression session.

Parameter imageBuffer: A CVImageBuffer containing a video frame to be compressed. Must have a nonzero reference count.

Parameter presentationTimeStamp: The presentation timestamp for this frame, to be attached to the sample buffer. Each presentation timestamp passed to a session must be greater than the previous one.

Parameter duration: The presentation duration for this frame, to be attached to the sample buffer. If you do not have duration information, pass kCMTimeInvalid.

Parameter frameProperties: Contains key/value pairs specifying additional properties for encoding this frame. Note that some session properties may also be changed between frames. Such changes have effect on subsequently encoded frames.

Parameter sourceFrameRefcon: Your reference value for the frame, which will be passed to the output callback function.

Parameter infoFlagsOut: Points to a VTEncodeInfoFlags to receive information about the encode operation. The kVTEncodeInfo_Asynchronous bit may be set if the encode is (or was) running asynchronously. The kVTEncodeInfo_FrameDropped bit may be set if the frame was dropped (synchronously). Pass NULL if you do not want to receive this information.