VideoToolbox provides hardware-accelerated video compression, decompression, format conversion, and frame-processing effects on iOS, macOS, tvOS, and visionOS. You encode and decode frames through a VTCompressionSession and VTDecompressionSession, and move or rotate pixel buffers between formats using VTPixelTransferSession and VTPixelRotationSession. Its VTFrameProcessor applies effects to video frames, configured through types such as VTFrameRateConversionConfiguration, VTLowLatencyFrameInterpolationConfiguration, VTSuperResolutionScalerConfiguration, VTMotionBlurConfiguration, VTOpticalFlowConfiguration, and VTTemporalNoiseFilterConfiguration. Supporting sessions including VTMotionEstimationSession, VTRAWProcessingSession, and VTHDRPerFrameMetadataGenerationSession, along with VTFrameSilo and VTMultiPassStorage, handle motion analysis, raw processing, HDR metadata, and multi-pass encoding storage.
Compression and Decompression 7
Sessions that encode and decode video frames using hardware acceleration.
- ClVTCompressionSession@typedef VTCompressionSessionRef
- ClVTDecompressionSession@typedef VTDecompressionSessionRef
- StVTDecompressionOutputCallbackRecordmacOS 10.8+A structure that holds a decompression session's output callback and context.
- StVTCompressionSessionOptionFlagsmacOS 10.10+Flags that control optional behavior of a compression session.
- StVTEncodeInfoFlagsFlags that report information about an encoded frame.
- StVTDecodeFrameFlags@enum VTDecodeFrameFlags
- StVTDecodeInfoFlags@enum VTDecodeInfoFlags
Pixel Transfer and Rotation 2
Sessions that convert pixel buffers between formats and rotate them.
- ClVTPixelTransferSessionmacOS 10.8+@typedef VTPixelTransferSessionRef
- ClVTPixelRotationSessionmacOS 13.0+@typedef VTPixelRotationSessionRef
Frame Processing 6
The frame processor and the frame and optical-flow objects it operates on.
- ClVTFrameProcessormacOS 15.4+Provides a unified interface you can use to apply video effects to frames.
- ClVTFrameProcessorFramemacOS 15.4+Helper class to wrap pixel buffers as video frames.
- ClVTFrameProcessorOpticalFlowmacOS 15.4+Helper class to wrap optical flow.
- PrVTFrameProcessorConfigurationmacOS 15.4+The protocol that describes the configuration of a processor for a video frame processing session.
- PrVTFrameProcessorParametersmacOS 15.4+The base protocol for input and output processing parameters for a Video Toolbox frame processor implementation.
- StVTFrameProcessorErrorError codes reported by the frame processor.
Frame Rate and Interpolation Effects 4
Configuration and parameter objects for frame-rate conversion and interpolation.
- ClVTFrameRateConversionConfigurationmacOS 15.4+Configuration that you use to set up the frame rate conversion processor.
- ClVTFrameRateConversionParametersmacOS 15.4+An object that contains both input and output parameters, which the frame-rate conversion processor needs to process a frame.
- ClVTLowLatencyFrameInterpolationConfigurationmacOS 26.0+Configuration that you use to program Video Toolbox frame processor for low-latency frame interpolation.
- ClVTLowLatencyFrameInterpolationParametersmacOS 26.0+An object that contains both input and output parameters that the low-latency frame interpolation processor needs.
Super Resolution and Motion Effects 8
Configuration and parameter objects for upscaling, motion blur, and optical flow.
- ClVTSuperResolutionScalerConfigurationmacOS 26.0+Configuration that you use to set up the super-resolution processor.
- ClVTSuperResolutionScalerParametersmacOS 26.0+An object that contains both input and output parameters that the super-resolution processor needs to run on a frame.
- ClVTLowLatencySuperResolutionScalerConfigurationmacOS 26.0+An object you use to configure frame processor for low-latency super-resolution scaler processing.
- ClVTLowLatencySuperResolutionScalerParametersmacOS 26.0+An object that contains both input and output parameters that the low-latency super-resolution scaler frame processor needs.
- ClVTMotionBlurConfigurationmacOS 15.4+Configuration that you use to set up the motion blur processor.
- ClVTMotionBlurParametersmacOS 15.4+An object that contains both input and output parameters that the motion blur processor needs to run on a frame.
- ClVTOpticalFlowConfigurationmacOS 15.4+Configuration that you use to set up an optical flow processor
- ClVTOpticalFlowParametersmacOS 15.4+An object that contains both input and output parameters the frame processor needs to generate optical flow between two frames.
Noise Filtering 2
Configuration and parameter objects for temporal noise reduction.
- ClVTTemporalNoiseFilterConfigurationmacOS 26.0+A configuration object to initiate a frame processor and use temporal noise-filter processor.
- ClVTTemporalNoiseFilterParametersmacOS 26.0+Encapsulates the frame-level parameters necessary for processing a source frame using temporal noise-filter processor.
Analysis and Specialized Sessions 4
Sessions for motion estimation, raw processing, and HDR metadata generation.
- ClVTMotionEstimationSessionAn object that estimates motion vectors between video frames.
- ClVTRAWProcessingSessionmacOS 15.0+@typedef VTRAWProcessingSessionRef
- ClVTHDRPerFrameMetadataGenerationSessionAn object that generates per-frame HDR metadata for video frames.
- StVTHDRPerFrameMetadataGenerationHDRFormatTypemacOS 15.0+@header
Multi-Pass and Frame Storage 2
Storage objects that hold encoded frames and multi-pass encoding state.
- ClVTFrameSilo@typedef VTFrameSilo
- ClVTMultiPassStorage@typedef VTMultiPassStorageRef
Geometry and Property Keys 3
Geometric value types and keys used across VideoToolbox APIs.
- StVTInt32PointA point defined by integer x and y coordinates.
- StVTInt32SizeA size defined by integer width and height values.
- StVTExtensionPropertiesKeymacOS 15.0+@typedef VTExtensionPropertiesKey
Type Aliases 8
- TyVTCompressionOutputCallback@typedef VTCompressionOutputCallback
- TyVTCompressionOutputHandler@typedef VTCompressionOutputHandler
- TyVTDecompressionOutputCallback@typedef VTDecompressionOutputCallback
- TyVTDecompressionOutputHandler@typedef VTDecompressionOutputHandler
- TyVTDecompressionOutputMultiImageCallback@typedef VTDecompressionOutputMultiImageCallback
- TyVTDecompressionMultiImageCapableOutputHandler@typedef VTDecompressionMultiImageCapableOutputHandler
- TyVTMotionEstimationOutputHandlerA block invoked by motion-estimation session when frame processing is complete.
- TyVTSession@typedef VTSessionRef