- Notifications
You must be signed in to change notification settings - Fork548
VideoToolbox tvOS xcode26.0 b3
Rolf Bjarne Kvinge edited this pageSep 2, 2025 ·3 revisions
#VideoToolbox.frameworkhttps://github.com/dotnet/macios/pull/23723
diff -ruN /Applications/Xcode_26.0.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionProperties.h /Applications/Xcode_26.0.0-beta3.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionProperties.h--- /Applications/Xcode_26.0.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionProperties.h2025-06-14 08:41:56+++ /Applications/Xcode_26.0.0-beta3.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionProperties.h2025-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+/*!+@constantkVTDecodeFrameOptionKey_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++/*!+@constantkVTDecodeFrameOptionKey_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_ENDdiff -ruN /Applications/Xcode_26.0.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionSession.h /Applications/Xcode_26.0.0-beta3.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionSession.h--- /Applications/Xcode_26.0.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionSession.h2025-06-19 05:03:01+++ /Applications/Xcode_26.0.0-beta3.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionSession.h2025-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.-@parammultiImageCapableHandler+@parammultiImageCapableOutputHandler 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 VTDecompressionMultiImageCapableOutputHandlermultiImageCapableOutputHandler ) API_AVAILABLE(macos(14.0), ios(17.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos) CF_REFINED_FOR_SWIFT; #endif // __BLOCKS__+/*!+@functionVTDecompressionSessionDecodeFrameWithOptions+@abstractDecompresses 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.+@paramsession+The decompression session.+@paramsampleBuffer+A CMSampleBuffer containing one or more video frames.+@paramdecodeFlags+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.+@paramframeOptions+Contains key/value pairs specifying additional options for decoding this frame.+Only keys with `kVTDecodeFrameOptionKey_` prefix should be used in this dictionary.+@paramsourceFrameRefCon+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.+@paraminfoFlagsOut+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 VTDecompressionSessionRefsession,+CM_NONNULL CMSampleBufferRefsampleBuffer,+VTDecodeFrameFlagsdecodeFlags, // bit 0 is enableAsynchronousDecompression+CM_NULLABLE CFDictionaryRefframeOptions,+void * CM_NULLABLEsourceFrameRefCon,+VTDecodeInfoFlags * CM_NULLABLE infoFlagsOut) API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos);++#if __BLOCKS__+/*!+@functionVTDecompressionSessionDecodeFrameWithOptionsAndOutputHandler+@abstractDecompresses 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.+@paramsession+The decompression session.+@paramsampleBuffer+A CMSampleBuffer containing one or more video frames.+@paramdecodeFlags+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.+@paramframeOptions+Contains key/value pairs specifying additional options for decoding this frame.+Only keys with `kVTDecodeFrameOptionKey_` prefix should be used in this dictionary.+@paraminfoFlagsOut+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.+@paramoutputHandler+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 VTDecompressionSessionRefsession,+CM_NONNULL CMSampleBufferRefsampleBuffer,+VTDecodeFrameFlagsdecodeFlags, // bit 0 is enableAsynchronousDecompression+CM_NULLABLE CFDictionaryRefframeOptions,+VTDecodeInfoFlags * CM_NULLABLEinfoFlagsOut,+CM_NONNULL VTDecompressionOutputHandleroutputHandler ) 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) } #endifdiff -ruN /Applications/Xcode_26.0.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTFrameProcessor_TemporalNoiseFilter.h /Applications/Xcode_26.0.0-beta3.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTFrameProcessor_TemporalNoiseFilter.h--- /Applications/Xcode_26.0.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTFrameProcessor_TemporalNoiseFilter.h2025-06-19 05:06:38+++ /Applications/Xcode_26.0.0-beta3.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTFrameProcessor_TemporalNoiseFilter.h2025-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