-
Notifications
You must be signed in to change notification settings - Fork 543
VideoToolbox macOS xcode26.0 b3
Rolf Bjarne Kvinge edited this page Jul 9, 2025
·
1 revision
#VideoToolbox.framework
diff -ruN /Applications/Xcode_26.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionProperties.h /Applications/Xcode_26.0.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionProperties.h
--- /Applications/Xcode_26.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionProperties.h 2025-06-14 08:41:56
+++ /Applications/Xcode_26.0.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionProperties.h 2025-07-01 06:22:03
@@ -512,6 +512,30 @@
*/
VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_RequestedMVHEVCVideoLayerIDs API_AVAILABLE(macos(14.0), ios(17.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos); // Read/write, CFArray(CFNumber), Optional
+#pragma mark Per-frame Decoder Option Keys
+/*!
+ @constant kVTDecodeFrameOptionKey_ContentAnalyzerRotation
+ @abstract
+ Clockwise rotation (one of 0, 90, 180, 270) to be applied for proper display orientation.
+ @discussion
+ This value is used for content analysis to properly orient the image before analysis.
+ The value should be a CFNumber with values of 0, 90, 180, or 270, representing degrees of clockwise rotation.
+ This key is not used unless you have attached a ``SCVideoStreamAnalyzer`` to the decompression session.
+*/
+VT_EXPORT const CFStringRef kVTDecodeFrameOptionKey_ContentAnalyzerRotation API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), visionos(26.0)) API_UNAVAILABLE(watchos); // CFNumber, Optional
+
+/*!
+ @constant kVTDecodeFrameOptionKey_ContentAnalyzerCropRectangle
+ @abstract
+ CGRect within the image to be used for content analysis, cropped before applying rotation.
+ @discussion
+ This value specifies a rectangle within the original frame that should be used for content analysis.
+ The cropping is applied before any rotation specified by kVTDecodeFrameOptionKey_ContentAnalyzerRotation.
+ The value should be a CFDictionary representing a CGRect created using CGRectCreateDictionaryRepresentation().
+ This key is not used unless you have attached a ``SCVideoStreamAnalyzer`` to the decompression session.
+*/
+VT_EXPORT const CFStringRef kVTDecodeFrameOptionKey_ContentAnalyzerCropRectangle API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), visionos(26.0)) API_UNAVAILABLE(watchos); // CGRect, Optional
+
CM_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_26.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionSession.h /Applications/Xcode_26.0.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionSession.h
--- /Applications/Xcode_26.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionSession.h 2025-06-19 05:03:01
+++ /Applications/Xcode_26.0.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionSession.h 2025-07-01 06:22:03
@@ -466,7 +466,7 @@
asynchronously.
The kVTDecodeInfo_FrameDropped bit may be set if the frame was dropped (synchronously).
Pass NULL if you do not want to receive this information.
- @param multiImageCapableHandler
+ @param multiImageCapableOutputHandler
The block to be called when decoding the frame is completed. If the
VTDecompressionSessionDecodeFrameWithMultiImageCapableOutputHandler call returns an error,
the block will not be called.
@@ -480,8 +480,95 @@
CM_NONNULL VTDecompressionMultiImageCapableOutputHandler multiImageCapableOutputHandler ) API_AVAILABLE(macos(14.0), ios(17.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos) CF_REFINED_FOR_SWIFT;
#endif // __BLOCKS__
+/*!
+ @function VTDecompressionSessionDecodeFrameWithOptions
+ @abstract Decompresses a video frame.
+ @discussion
+ If an error is returned from this function, there will be no callback. Otherwise
+ the callback provided during VTDecompressionSessionCreate will be called.
+ @param session
+ The decompression session.
+ @param sampleBuffer
+ A CMSampleBuffer containing one or more video frames.
+ @param decodeFlags
+ A bitfield of directives to the decompression session and decoder.
+ The kVTDecodeFrame_EnableAsynchronousDecompression bit indicates whether the video decoder
+ may decompress the frame asynchronously.
+ The kVTDecodeFrame_EnableTemporalProcessing bit indicates whether the decoder may delay calls to the output callback
+ so as to enable processing in temporal (display) order.
+ If both flags are clear, the decompression shall complete and your output callback function will be called
+ before VTDecompressionSessionDecodeFrameWithOptions returns.
+ If either flag is set, VTDecompressionSessionDecodeFrameWithOptions may return before the output callback function is called.
+ @param frameOptions
+ Contains key/value pairs specifying additional options for decoding this frame.
+ Only keys with `kVTDecodeFrameOptionKey_` prefix should be used in this dictionary.
+ @param sourceFrameRefCon
+ Your reference value for the frame.
+ Note that if sampleBuffer contains multiple frames, the output callback function will be called
+ multiple times with this sourceFrameRefCon.
+ @param infoFlagsOut
+ Points to a VTDecodeInfoFlags to receive information about the decode operation.
+ The kVTDecodeInfo_Asynchronous bit may be set if the decode is (or was) running
+ asynchronously.
+ The kVTDecodeInfo_FrameDropped bit may be set if the frame was dropped (synchronously).
+ Pass NULL if you do not want to receive this information.
+*/
+VT_EXPORT OSStatus
+VTDecompressionSessionDecodeFrameWithOptions(
+ CM_NONNULL VTDecompressionSessionRef session,
+ CM_NONNULL CMSampleBufferRef sampleBuffer,
+ VTDecodeFrameFlags decodeFlags, // bit 0 is enableAsynchronousDecompression
+ CM_NULLABLE CFDictionaryRef frameOptions,
+ void * CM_NULLABLE sourceFrameRefCon,
+ VTDecodeInfoFlags * CM_NULLABLE infoFlagsOut) API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos);
+
+#if __BLOCKS__
+/*!
+ @function VTDecompressionSessionDecodeFrameWithOptionsAndOutputHandler
+ @abstract Decompresses a video frame.
+ @discussion
+ Cannot be called with a session created with a VTDecompressionOutputCallbackRecord.
+ If the VTDecompressionSessionDecodeFrameWithOptionsAndOutputHandler call returns an error,
+ the block will not be called.
+ @param session
+ The decompression session.
+ @param sampleBuffer
+ A CMSampleBuffer containing one or more video frames.
+ @param decodeFlags
+ A bitfield of directives to the decompression session and decoder.
+ The kVTDecodeFrame_EnableAsynchronousDecompression bit indicates whether the video decoder
+ may decompress the frame asynchronously.
+ The kVTDecodeFrame_EnableTemporalProcessing bit indicates whether the decoder may delay calls to the output callback
+ so as to enable processing in temporal (display) order.
+ If both flags are clear, the decompression shall complete and your output callback function will be called
+ before VTDecompressionSessionDecodeFrameWithOptionsAndOutputHandler returns.
+ If either flag is set, VTDecompressionSessionDecodeFrameWithOptionsAndOutputHandler may return before the output
+ callback function is called.
+ @param frameOptions
+ Contains key/value pairs specifying additional options for decoding this frame.
+ Only keys with `kVTDecodeFrameOptionKey_` prefix should be used in this dictionary.
+ @param infoFlagsOut
+ Points to a VTDecodeInfoFlags to receive information about the decode operation.
+ The kVTDecodeInfo_Asynchronous bit may be set if the decode is (or was) running
+ asynchronously.
+ The kVTDecodeInfo_FrameDropped bit may be set if the frame was dropped (synchronously).
+ Pass NULL if you do not want to receive this information.
+ @param outputHandler
+ The block to be called when decoding the frame is completed. If the VTDecompressionSessionDecodeFrameWithOptionsAndOutputHandler
+ call returns an error, the block will not be called.
+ */
+VT_EXPORT OSStatus
+VTDecompressionSessionDecodeFrameWithOptionsAndOutputHandler(
+ CM_NONNULL VTDecompressionSessionRef session,
+ CM_NONNULL CMSampleBufferRef sampleBuffer,
+ VTDecodeFrameFlags decodeFlags, // bit 0 is enableAsynchronousDecompression
+ CM_NULLABLE CFDictionaryRef frameOptions,
+ VTDecodeInfoFlags * CM_NULLABLE infoFlagsOut,
+ CM_NONNULL VTDecompressionOutputHandler outputHandler ) API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos);
+#endif // __BLOCKS__
+
#pragma pack(pop)
-
+
#if defined(__cplusplus)
}
#endif
diff -ruN /Applications/Xcode_26.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTFrameProcessor_TemporalNoiseFilter.h /Applications/Xcode_26.0.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTFrameProcessor_TemporalNoiseFilter.h
--- /Applications/Xcode_26.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTFrameProcessor_TemporalNoiseFilter.h 2025-06-19 05:06:38
+++ /Applications/Xcode_26.0.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTFrameProcessor_TemporalNoiseFilter.h 2025-07-01 06:43:00
@@ -45,8 +45,8 @@
@param frameHeight Height of source frame in pixels.
*/
-- (instancetype)initWithFrameWidth:(NSInteger)frameWidth
- frameHeight:(NSInteger)frameHeight;
+- (nullable instancetype)initWithFrameWidth:(NSInteger)frameWidth
+ frameHeight:(NSInteger)frameHeight;
- (instancetype) init NS_UNAVAILABLE;
+ (instancetype) new NS_UNAVAILABLE;
@@ -139,14 +139,14 @@
@param filterStrength Used to control strength of the noise filtering. The value can range from the minimum strength of 0.0 to the maximum strength of 1.0. Change in filter strength causes the processor to flush all frames in the queue prior to processing the source frame.
- @param discontinuity Marks sequence discontinuity, forcing the processor to reset prior to processing the source frame.
+ @param hasDiscontinuity Marks sequence discontinuity, forcing the processor to reset prior to processing the source frame.
*/
-- (instancetype) initWithSourceFrame:(VTFrameProcessorFrame *)sourceFrame
- nextFrames:(NSArray<VTFrameProcessorFrame *> * _Nullable)nextFrames
- previousFrames:(NSArray<VTFrameProcessorFrame *> * _Nullable)previousFrames
- destinationFrame:(VTFrameProcessorFrame *)destinationFrame
- filterStrength:(float)filterStrength
- discontinuity:(Boolean)discontinuity;
+- (nullable instancetype) initWithSourceFrame:(VTFrameProcessorFrame *)sourceFrame
+ nextFrames:(NSArray<VTFrameProcessorFrame *> * _Nullable)nextFrames
+ previousFrames:(NSArray<VTFrameProcessorFrame *> * _Nullable)previousFrames
+ destinationFrame:(VTFrameProcessorFrame *)destinationFrame
+ filterStrength:(float)filterStrength
+ hasDiscontinuity:(Boolean)hasDiscontinuity;
- (instancetype) init NS_UNAVAILABLE;
+ (instancetype) new NS_UNAVAILABLE;
@@ -176,10 +176,10 @@
@property (nonatomic) float filterStrength;
/*!
- @property discontinuity
+ @property hasDiscontinuity
@abstract Marks sequence discontinuity, forcing the processor to reset prior to processing the source frame.
*/
-@property (nonatomic) Boolean discontinuity;
+@property (nonatomic) BOOL hasDiscontinuity;
/*!
@property destinationFrame