Skip to content

VideoToolbox iOS xcode16.0 b1

Rolf Bjarne Kvinge edited this page Aug 30, 2024 · 3 revisions

#VideoToolbox.framework https://github.com/xamarin/xamarin-macios/pull/21157

diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTCompressionProperties.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTCompressionProperties.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTCompressionProperties.h	2024-04-17 07:10:21
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTCompressionProperties.h	2024-05-30 04:04:19
@@ -87,7 +87,7 @@
 	@discussion
 		This number may decrease asynchronously.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_NumberOfPendingFrames API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read-only, CFNumber<int>
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_NumberOfPendingFrames API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read-only, CFNumber<int>
 	
 /*!
 	@constant	kVTCompressionPropertyKey_PixelBufferPoolIsShared
@@ -98,7 +98,7 @@
 		This is false if separate pools are used because the video encoder's 
 		and the client's pixel buffer attributes were incompatible.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_PixelBufferPoolIsShared API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read-only, CFBoolean
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_PixelBufferPoolIsShared API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read-only, CFBoolean
 
 /*!
 	@constant	kVTCompressionPropertyKey_VideoEncoderPixelBufferAttributes
@@ -107,7 +107,7 @@
 	@discussion
 		You can use these to create a pixel buffer pool for source pixel buffers. 
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_VideoEncoderPixelBufferAttributes API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read-only, CFDictionary
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_VideoEncoderPixelBufferAttributes API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read-only, CFDictionary
 
 // Standard properties describing content.
 
@@ -139,7 +139,7 @@
 		and both limits will be enforced - requiring a keyframe every X
 		frames or every Y seconds, whichever comes first.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MaxKeyFrameInterval API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFNumber<int>, Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MaxKeyFrameInterval API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFNumber<int>, Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_MaxKeyFrameIntervalDuration
@@ -156,7 +156,7 @@
 		and both limits will be enforced - requiring a keyframe every X
 		frames or every Y seconds, whichever comes first.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MaxKeyFrameIntervalDuration API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFNumber<seconds>, Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MaxKeyFrameIntervalDuration API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFNumber<seconds>, Optional
 
 
 /*!
@@ -166,7 +166,7 @@
 	@discussion
 		True by default.  Set this to false to require key-frame-only compression.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_AllowTemporalCompression API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/Write, CFBoolean, Optional, defaults to true
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_AllowTemporalCompression API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/Write, CFBoolean, Optional, defaults to true
 
 /*!
 	@constant	kVTCompressionPropertyKey_AllowFrameReordering
@@ -179,7 +179,7 @@
 		they were presented to the video encoder (the display order). 
 		True by default.  Set this to false to prevent frame reordering.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_AllowFrameReordering API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/Write, CFBoolean, Optional, defaults to true
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_AllowFrameReordering API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/Write, CFBoolean, Optional, defaults to true
 
 /*!
 	@constant	kVTCompressionPropertyKey_AllowOpenGOP
@@ -193,7 +193,7 @@
 		will be no frame dependencies across sync samples (frames where kCMSampleAttachmentKey_NotSync is absent or kCFBooleanFalse)
 		When the value is kCFBooleanTrue, the encoder may use Open GOP frame dependency structures to increase compression efficiency or quality.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_AllowOpenGOP API_AVAILABLE(macosx(10.14), ios(12.0), tvos(12.0)); // Read/Write, CFBoolean, Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_AllowOpenGOP API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/Write, CFBoolean, Optional
 
 #pragma mark Rate control
 
@@ -209,7 +209,7 @@
 		information is provided for source frames, and that some codecs do
 		not support limiting to specified bit rates.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_AverageBitRate API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFNumber<SInt32>, Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_AverageBitRate API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFNumber<SInt32>, Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_DataRateLimits
@@ -244,7 +244,7 @@
 		kVTCompressionPropertyKey_AverageBitRate if the specified target is too
 		close to a hard limit specified by kVTCompressionPropertyKey_DataRateLimits.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_DataRateLimits API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFArray[CFNumber], [bytes, seconds, bytes, seconds...], Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_DataRateLimits API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFArray[CFNumber], [bytes, seconds, bytes, seconds...], Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_Quality
@@ -257,7 +257,7 @@
 		high = 0.75, and 1.0 implies lossless compression for encoders that
 		support it.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_Quality API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFNumber<Float>, Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_Quality API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFNumber<Float>, Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_TargetQualityForAlpha
@@ -271,7 +271,7 @@
 		the alpha channel, quality is given priority over bitrate.  Note this
 		parameter is currently only applicable to HEVC with Alpha encoders.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_TargetQualityForAlpha	API_AVAILABLE(macosx(10.15), ios(13.0), tvos(13.0)); // Read/write, CFNumber<Float>, Optional, NULL by default
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_TargetQualityForAlpha	API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFNumber<Float>, Optional, NULL by default
 
 /*!
 	@constant	kVTCompressionPropertyKey_MoreFramesBeforeStart
@@ -288,7 +288,7 @@
 		segments can be concatenated smoothly -- for example, avoiding
 		data rate spikes where segments are joined. 
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MoreFramesBeforeStart API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFBoolean, Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MoreFramesBeforeStart API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFBoolean, Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_MoreFramesAfterEnd
@@ -301,7 +301,7 @@
 		stand-alone session, or if this session will encode the last
 		segment of a multi-segment compression. By default, false.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MoreFramesAfterEnd API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFBoolean, Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MoreFramesAfterEnd API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFBoolean, Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_PrioritizeEncodingSpeedOverQuality
@@ -320,7 +320,7 @@
 		Not all video encoders support this property.
 		By default, this property is NULL.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_PrioritizeEncodingSpeedOverQuality API_AVAILABLE(macosx(11.0), ios(14.0), tvos(14.0)); // CFBoolean, Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_PrioritizeEncodingSpeedOverQuality API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), visionos(1.0)) API_UNAVAILABLE(watchos); // CFBoolean, Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_ConstantBitRate
@@ -341,7 +341,7 @@
 		returned when this option is not supported.
 
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_ConstantBitRate API_AVAILABLE(macosx(13.0), ios(16.0), tvos(16.0)); // CFNumber bits per second, Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_ConstantBitRate API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), visionos(1.0)) API_UNAVAILABLE(watchos); // CFNumber bits per second, Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_EstimatedAverageBytesPerFrame
@@ -352,7 +352,7 @@
 		This property is not implemented by all video encoders.
 		
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_EstimatedAverageBytesPerFrame API_AVAILABLE(macosx(13.0), ios(16.0), tvos(16.0), watchos(9.0)); // Read Only, CFNumber (bytes per frame)
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_EstimatedAverageBytesPerFrame API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), visionos(1.0)) API_UNAVAILABLE(watchos); // Read Only, CFNumber (bytes per frame)
 
 
 #pragma mark Bitstream configuration
@@ -365,64 +365,66 @@
 		Available profiles and levels vary across formats and between video encoders.
 		Video encoders should use standard keys where available, and follow standard patterns where not.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_ProfileLevel API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFString (enumeration), Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_ProfileLevel API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFString (enumeration), Optional
 	
-VT_EXPORT const CFStringRef kVTProfileLevel_HEVC_Main_AutoLevel API_AVAILABLE(macosx(10.13), ios(11.0), tvos(11.0));
-VT_EXPORT const CFStringRef kVTProfileLevel_HEVC_Main10_AutoLevel API_AVAILABLE(macosx(10.13), ios(11.0), tvos(11.0));
-VT_EXPORT const CFStringRef kVTProfileLevel_HEVC_Main42210_AutoLevel API_AVAILABLE(macosx(12.3), ios(15.4), tvos(15.4));
+VT_EXPORT const CFStringRef kVTProfileLevel_HEVC_Main_AutoLevel API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_HEVC_Main10_AutoLevel API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_HEVC_Main42210_AutoLevel API_AVAILABLE(macos(12.3), ios(15.4), tvos(15.4), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_HEVC_Monochrome_AutoLevel API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_HEVC_Monochrome10_AutoLevel API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), visionos(1.0)) API_UNAVAILABLE(watchos);
 
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_Baseline_1_3 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_Baseline_3_0 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_Baseline_3_1 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_Baseline_3_2 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_Baseline_4_0 API_AVAILABLE(macosx(10.9), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_Baseline_4_1 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_Baseline_4_2 API_AVAILABLE(macosx(10.9), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_Baseline_5_0 API_AVAILABLE(macosx(10.9), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_Baseline_5_1 API_AVAILABLE(macosx(10.9), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_Baseline_5_2 API_AVAILABLE(macosx(10.9), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_Baseline_AutoLevel API_AVAILABLE(macosx(10.9), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_ConstrainedBaseline_AutoLevel API_AVAILABLE(macosx(12.0), ios(15.0), tvos(15.0));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_Main_3_0 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_Main_3_1 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_Main_3_2 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_Main_4_0 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_Main_4_1 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_Main_4_2 API_AVAILABLE(macosx(10.9), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_Main_5_0 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_Main_5_1 API_AVAILABLE(macosx(10.9), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_Main_5_2 API_AVAILABLE(macosx(10.9), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_Main_AutoLevel API_AVAILABLE(macosx(10.9), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_Extended_5_0 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_Extended_AutoLevel API_AVAILABLE(macosx(10.9), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_High_3_0 API_AVAILABLE(macosx(10.9), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_High_3_1 API_AVAILABLE(macosx(10.9), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_High_3_2 API_AVAILABLE(macosx(10.9), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_High_4_0 API_AVAILABLE(macosx(10.9), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_High_4_1 API_AVAILABLE(macosx(10.9), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_High_4_2 API_AVAILABLE(macosx(10.9), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_High_5_0 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_High_5_1 API_AVAILABLE(macosx(10.9), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_High_5_2 API_AVAILABLE(macosx(10.9), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_High_AutoLevel API_AVAILABLE(macosx(10.9), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H264_ConstrainedHigh_AutoLevel API_AVAILABLE(macosx(12.0), ios(15.0), tvos(15.0));
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_Baseline_1_3 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_Baseline_3_0 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_Baseline_3_1 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_Baseline_3_2 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_Baseline_4_0 API_AVAILABLE(macos(10.9), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_Baseline_4_1 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_Baseline_4_2 API_AVAILABLE(macos(10.9), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_Baseline_5_0 API_AVAILABLE(macos(10.9), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_Baseline_5_1 API_AVAILABLE(macos(10.9), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_Baseline_5_2 API_AVAILABLE(macos(10.9), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_Baseline_AutoLevel API_AVAILABLE(macos(10.9), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_ConstrainedBaseline_AutoLevel API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_Main_3_0 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_Main_3_1 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_Main_3_2 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_Main_4_0 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_Main_4_1 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_Main_4_2 API_AVAILABLE(macos(10.9), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_Main_5_0 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_Main_5_1 API_AVAILABLE(macos(10.9), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_Main_5_2 API_AVAILABLE(macos(10.9), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_Main_AutoLevel API_AVAILABLE(macos(10.9), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_Extended_5_0 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_Extended_AutoLevel API_AVAILABLE(macos(10.9), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_High_3_0 API_AVAILABLE(macos(10.9), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_High_3_1 API_AVAILABLE(macos(10.9), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_High_3_2 API_AVAILABLE(macos(10.9), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_High_4_0 API_AVAILABLE(macos(10.9), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_High_4_1 API_AVAILABLE(macos(10.9), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_High_4_2 API_AVAILABLE(macos(10.9), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_High_5_0 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_High_5_1 API_AVAILABLE(macos(10.9), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_High_5_2 API_AVAILABLE(macos(10.9), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_High_AutoLevel API_AVAILABLE(macos(10.9), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H264_ConstrainedHigh_AutoLevel API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), visionos(1.0)) API_UNAVAILABLE(watchos);
 
-VT_EXPORT const CFStringRef kVTProfileLevel_MP4V_Simple_L0 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_MP4V_Simple_L1 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_MP4V_Simple_L2 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_MP4V_Simple_L3 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_MP4V_Main_L2 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_MP4V_Main_L3 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_MP4V_Main_L4 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_MP4V_AdvancedSimple_L0 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_MP4V_AdvancedSimple_L1 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_MP4V_AdvancedSimple_L2 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_MP4V_AdvancedSimple_L3 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_MP4V_AdvancedSimple_L4 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
+VT_EXPORT const CFStringRef kVTProfileLevel_MP4V_Simple_L0 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_MP4V_Simple_L1 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_MP4V_Simple_L2 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_MP4V_Simple_L3 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_MP4V_Main_L2 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_MP4V_Main_L3 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_MP4V_Main_L4 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_MP4V_AdvancedSimple_L0 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_MP4V_AdvancedSimple_L1 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_MP4V_AdvancedSimple_L2 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_MP4V_AdvancedSimple_L3 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_MP4V_AdvancedSimple_L4 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 
-VT_EXPORT const CFStringRef kVTProfileLevel_H263_Profile0_Level10 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H263_Profile0_Level45 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTProfileLevel_H263_Profile3_Level45 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
+VT_EXPORT const CFStringRef kVTProfileLevel_H263_Profile0_Level10 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H263_Profile0_Level45 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTProfileLevel_H263_Profile3_Level45 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@constant	kVTCompressionPropertyKey_OutputBitDepth
@@ -430,7 +432,7 @@
 		 When set, requires the encoder to output bitstream with the requested bit depth, if supported by the configured profile level setting.
 		 In the absence of this property, the video encoder will assume the highest bit depth allowable by the configured profile level setting.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_OutputBitDepth API_AVAILABLE(macosx(12.3), ios(15.4), tvos(15.4), watchos(8.4)); // Read/write, Optional, CFNumber, NULL by default
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_OutputBitDepth API_AVAILABLE(macos(12.3), ios(15.4), tvos(15.4), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, Optional, CFNumber, NULL by default
 
 /*!
     @constant    kVTCompressionPropertyKey_HDRMetadataInsertionMode
@@ -444,9 +446,9 @@
         This property has no effect if the output color space is not HDR, or if
         there is currently no underlying support for the HDR format.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_HDRMetadataInsertionMode API_AVAILABLE(macosx(11.0), ios(14.0), tvos(14.0), watchos(7.0)); // Read/write, CFString, Optional, default is kVTHDRMetadataInsertionMode_Auto
-    VT_EXPORT const CFStringRef kVTHDRMetadataInsertionMode_None API_AVAILABLE(macosx(11.0), ios(14.0), tvos(14.0), watchos(7.0));
-    VT_EXPORT const CFStringRef kVTHDRMetadataInsertionMode_Auto API_AVAILABLE(macosx(11.0), ios(14.0), tvos(14.0), watchos(7.0));
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_HDRMetadataInsertionMode API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFString, Optional, default is kVTHDRMetadataInsertionMode_Auto
+    VT_EXPORT const CFStringRef kVTHDRMetadataInsertionMode_None API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+    VT_EXPORT const CFStringRef kVTHDRMetadataInsertionMode_Auto API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	 @constant	kVTCompressionPropertyKey_H264EntropyMode
@@ -461,9 +463,9 @@
 		which is not compatible with a requested Profile and Level.  Results in this case are undefined,
 		and could include encode errors or a non-compliant output stream.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_H264EntropyMode API_AVAILABLE(macosx(10.9), ios(8.0), tvos(10.2));	// Read/write, CFString, optional
-VT_EXPORT const CFStringRef kVTH264EntropyMode_CAVLC API_AVAILABLE(macosx(10.9), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTH264EntropyMode_CABAC API_AVAILABLE(macosx(10.9), ios(8.0), tvos(10.2));
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_H264EntropyMode API_AVAILABLE(macos(10.9), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);	// Read/write, CFString, optional
+VT_EXPORT const CFStringRef kVTH264EntropyMode_CAVLC API_AVAILABLE(macos(10.9), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTH264EntropyMode_CABAC API_AVAILABLE(macos(10.9), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 	
 
 /*!
@@ -474,7 +476,7 @@
 		This property is only supported by video encoders for formats that are 
 		tied to particular pixel formats (eg, 16-bit RGB, 24-bit RGB).
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_Depth API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFNumber (CMPixelFormatType), Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_Depth API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFNumber (CMPixelFormatType), Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_PreserveAlphaChannel
@@ -485,7 +487,7 @@
 		The client may set this to kCFBooleanFalse in cases where they are not interested in preserving alpha, or if the alpha channel is known to be fully opaque.
 		This property is not supported by all encoders.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_PreserveAlphaChannel API_AVAILABLE(macosx(13.0), ios(16.0), tvos(16.0), watchos(9.0)); // Read/write, CFBoolean, Optional, (effectively) kCFBooleanTrue by default
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_PreserveAlphaChannel API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFBoolean, Optional, (effectively) kCFBooleanTrue by default
 
 #pragma mark Runtime restrictions
 
@@ -503,7 +505,7 @@
 		The default is kVTUnlimitedFrameDelayCount, which sets no limit
 		on the compression window.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MaxFrameDelayCount API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFNumber, Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MaxFrameDelayCount API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFNumber, Optional
 enum { kVTUnlimitedFrameDelayCount = -1 };
 	
 /*!
@@ -515,7 +517,7 @@
 		slices produced by the encoder, where possible.
 		By default, no limit is specified.  A value of zero implies default behavior.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MaxH264SliceBytes API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFNumber<SInt32>, Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MaxH264SliceBytes API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFNumber<SInt32>, Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_RealTime
@@ -536,7 +538,7 @@
 		by anticipating that encoding requests will happen at this rate.
 		By default, this property is NULL, indicating unknown.  
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_RealTime API_AVAILABLE(macosx(10.9), ios(8.0), tvos(10.2)); // Read/write, CFBoolean or NULL, Optional, default NULL
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_RealTime API_AVAILABLE(macos(10.9), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFBoolean or NULL, Optional, default NULL
 
 /*!
 	@constant	kVTCompressionPropertyKey_MaximizePowerEfficiency
@@ -551,7 +553,7 @@
 		If the kVTCompressionPropertyKey_RealTime property is set to kCFBooleanTrue, 
 		the video encoder may act as though this property were set to kCFBooleanFalse.
  */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MaximizePowerEfficiency API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0)); // Read/write, CFBoolean or NULL, Optional, default is false
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MaximizePowerEfficiency API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFBoolean or NULL, Optional, default is false
 
 
 #pragma mark Hints
@@ -568,7 +570,7 @@
 		The default is 0, which indicates that the number of source frames
 		is not known.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_SourceFrameCount API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFNumber, Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_SourceFrameCount API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFNumber, Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_ExpectedFrameRate
@@ -584,7 +586,7 @@
 		by anticipating that encoding requests will happen at this rate.
 		By default, this is zero, indicating "unknown".
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_ExpectedFrameRate API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFNumber, Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_ExpectedFrameRate API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFNumber, Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_BaseLayerFrameRateFraction
@@ -594,7 +596,7 @@
 		This property indicates the fraction of total frames submitted that should be encoded in the base layer.
 		For example, a value of 0.5 means that half of the frames are in the base layer, and half are in the enhancement layer.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_BaseLayerFrameRateFraction API_AVAILABLE(macosx(11.3), ios(14.5), tvos(14.5)); // Read/write, CFNumber<Float>, Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_BaseLayerFrameRateFraction API_AVAILABLE(macos(11.3), ios(14.5), tvos(14.5), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFNumber<Float>, Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_BaseLayerBitRateFraction
@@ -605,7 +607,7 @@
 		For example: If the target bitrate is set to 500kbps and kVTCompressionPropertyKey_BaseLayerBitRateFraction is set to 0.6, the base layer will be given a
 		budget of 300kbps and the enhancement layer 200kbps.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_BaseLayerBitRateFraction API_AVAILABLE(macosx(12.0), ios(15.0), tvos(15.0)); // Read/write, CFNumber<Float>, Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_BaseLayerBitRateFraction API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFNumber<Float>, Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_ExpectedDuration
@@ -614,7 +616,7 @@
 	@discussion
 		By default, this is zero, indicating "unknown".
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_ExpectedDuration API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFNumber(seconds), Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_ExpectedDuration API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFNumber(seconds), Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_BaseLayerFrameRate
@@ -624,7 +626,7 @@
 		The frame rate is measured in frames per second.
 		This property is only implemented by encoders which support hierarchical frame encoding, and requests that this encoding feature be enabled.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_BaseLayerFrameRate API_AVAILABLE(macosx(10.13), ios(11.0), tvos(11.0)); // Read/write, CFNumber, Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_BaseLayerFrameRate API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFNumber, Optional
 
 /*!
 	 @constant	kVTCompressionPropertyKey_ReferenceBufferCount
@@ -634,7 +636,7 @@
 		This is typically used to force the encoder to use lower count than allowed by the stantard for a level/profile.
 		The encoder will fail and  report an error if the requested value exceeds the limit set by the standard for such a level/profile.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_ReferenceBufferCount API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0)); // CFNumber, Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_ReferenceBufferCount API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), visionos(1.0)) API_UNAVAILABLE(watchos); // CFNumber, Optional
 
 
 /*!
@@ -645,7 +647,7 @@
 		The MSE value returned may be measured using an internal representation of the decoded frame which may lack filtering or processing present in the actual decoded frame.  Because of this, there may be a small delta between the reported MSE and the true MSE.
 		If supported, the MSE values will be returned as sample buffer attachments on the encoded frame using the kVTSampleAttachmentKey_QualityMetrics key.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_CalculateMeanSquaredError API_AVAILABLE(macos(14.4), ios(17.4), tvos(17.4), watchos(10.4)); // Read/write, CFBoolean
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_CalculateMeanSquaredError API_AVAILABLE(macos(14.4), ios(17.4), tvos(17.4), visionos(1.1)) API_UNAVAILABLE(watchos); // Read/write, CFBoolean
 
 
 /*!
@@ -655,7 +657,7 @@
 	@discussion
 		The video encoder will attach this via the CMSampleBufferGetSampleAttachmentsArray interface before emitting the sample buffer.
 */
-VT_EXPORT const CFStringRef kVTSampleAttachmentKey_QualityMetrics API_AVAILABLE(macos(14.4), ios(17.4), tvos(17.4), watchos(10.4)); //CFDictionary
+VT_EXPORT const CFStringRef kVTSampleAttachmentKey_QualityMetrics API_AVAILABLE(macos(14.4), ios(17.4), tvos(17.4), visionos(1.1)) API_UNAVAILABLE(watchos); //CFDictionary
 
 /*!
 	@constant	kVTSampleAttachmentQualityMetricsKey_LumaMeanSquaredError
@@ -666,7 +668,7 @@
 		For multi-view video, a CFArray value is returned, and each element (CFNumber) in the CFArray includes MSE for the corresponding view.
 		The video encoder will attach this in kVTSampleAttachmentKey_QualityMetrics via the CMSampleBufferGetSampleAttachmentsArray interface before emitting the sample buffer.
 */
-VT_EXPORT const CFStringRef kVTSampleAttachmentQualityMetricsKey_LumaMeanSquaredError API_AVAILABLE(macos(14.4), ios(17.4), tvos(17.4), watchos(10.4)); // CFNumber, CFArray
+VT_EXPORT const CFStringRef kVTSampleAttachmentQualityMetricsKey_LumaMeanSquaredError API_AVAILABLE(macos(14.4), ios(17.4), tvos(17.4), visionos(1.1)) API_UNAVAILABLE(watchos); // CFNumber, CFArray
 
 /*!
 	@constant	kVTSampleAttachmentQualityMetricsKey_ChromaBlueMeanSquaredError
@@ -677,7 +679,7 @@
 		For multi-view video, a CFArray value is returned, and each element (CFNumber) in the CFArray includes MSE for the corresponding view.
 		The video encoder will attach this in kVTSampleAttachmentKey_QualityMetrics via the CMSampleBufferGetSampleAttachmentsArray interface before emitting the sample buffer.
 **/
-VT_EXPORT const CFStringRef kVTSampleAttachmentQualityMetricsKey_ChromaBlueMeanSquaredError API_AVAILABLE(macos(14.4), ios(17.4), tvos(17.4), watchos(10.4)); // CFNumber, CFArray
+VT_EXPORT const CFStringRef kVTSampleAttachmentQualityMetricsKey_ChromaBlueMeanSquaredError API_AVAILABLE(macos(14.4), ios(17.4), tvos(17.4), visionos(1.1)) API_UNAVAILABLE(watchos); // CFNumber, CFArray
 
 /*!
 	@constant	kVTSampleAttachmentQualityMetricsKey_ChromaRedMeanSquaredError
@@ -688,7 +690,7 @@
 		For multi-view video, a CFArray value is returned, and each element (CFNumber) in the CFArray includes MSE for the corresponding view.
 		The video encoder will attach this in kVTSampleAttachmentKey_QualityMetrics via the CMSampleBufferGetSampleAttachmentsArray interface before emitting the sample buffer.
 */
-VT_EXPORT const CFStringRef kVTSampleAttachmentQualityMetricsKey_ChromaRedMeanSquaredError API_AVAILABLE(macos(14.4), ios(17.4), tvos(17.4), watchos(10.4)); // CFNumber, CFArray
+VT_EXPORT const CFStringRef kVTSampleAttachmentQualityMetricsKey_ChromaRedMeanSquaredError API_AVAILABLE(macos(14.4), ios(17.4), tvos(17.4), visionos(1.1)) API_UNAVAILABLE(watchos); // CFNumber, CFArray
 
 
 
@@ -704,7 +706,7 @@
 		this property can be set to kCFBooleanFalse.
  		In MacOS 10.15 and later, hardware encode is enabled in VTCompressionSessions by default.
 */
-VT_EXPORT const CFStringRef kVTVideoEncoderSpecification_EnableHardwareAcceleratedVideoEncoder API_AVAILABLE(macosx(10.9), ios(17.4), tvos(17.4)); // CFBoolean, Optional, true by default
+VT_EXPORT const CFStringRef kVTVideoEncoderSpecification_EnableHardwareAcceleratedVideoEncoder API_AVAILABLE(macos(10.9), ios(17.4), tvos(17.4), visionos(1.1)) API_UNAVAILABLE(watchos); // CFBoolean, Optional, true by default
 
 /*!
 	@constant	kVTVideoEncoderSpecification_RequireHardwareAcceleratedVideoEncoder
@@ -723,7 +725,7 @@
 			- the requested encoding format or encoding configuration is not supported
 			- the hardware encoding resources on the machine are busy
 */
-VT_EXPORT const CFStringRef kVTVideoEncoderSpecification_RequireHardwareAcceleratedVideoEncoder API_AVAILABLE(macosx(10.9), ios(17.4), tvos(17.4)); // CFBoolean, Optional
+VT_EXPORT const CFStringRef kVTVideoEncoderSpecification_RequireHardwareAcceleratedVideoEncoder API_AVAILABLE(macos(10.9), ios(17.4), tvos(17.4), visionos(1.1)) API_UNAVAILABLE(watchos); // CFBoolean, Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_UsingHardwareAcceleratedVideoEncoder
@@ -734,7 +736,7 @@
 		accelerated encode using kVTVideoEncoderSpecification_EnableHardwareAcceleratedVideoEncoder
 		to see if a hardware accelerated encoder was selected.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_UsingHardwareAcceleratedVideoEncoder API_AVAILABLE(macosx(10.9), ios(17.4), tvos(17.4)); // CFBoolean, Read; assumed false by default
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_UsingHardwareAcceleratedVideoEncoder API_AVAILABLE(macos(10.9), ios(17.4), tvos(17.4), visionos(1.1)) API_UNAVAILABLE(watchos); // CFBoolean, Read; assumed false by default
 
 /*!
 	@constant	kVTVideoEncoderSpecification_RequiredEncoderGPURegistryID
@@ -744,7 +746,7 @@
 		This specification implies kVTVideoEncoderSpecification_EnableHardwareAcceleratedVideoEncoder.  A separate hardware encode opt-in is not required.
 		The GPU registryID can be obtained from a MTLDevice using [MTLDevice registryID] or can be obtained from OpenGL or OpenCL.
 */
-VT_EXPORT const CFStringRef kVTVideoEncoderSpecification_RequiredEncoderGPURegistryID API_AVAILABLE(macosx(10.14)); // CFNumber, Optional
+VT_EXPORT const CFStringRef kVTVideoEncoderSpecification_RequiredEncoderGPURegistryID API_AVAILABLE(macos(10.14), ios(13.0), tvos(13.0), visionos(1.0)) API_UNAVAILABLE(watchos); // CFNumber, Optional
 
 /*!
 	@constant	kVTVideoEncoderSpecification_PreferredEncoderGPURegistryID
@@ -757,7 +759,7 @@
 		This specification can be used in conjunction with kVTVideoEncoderSpecification_RequireHardwareAcceleratedVideoEncoder to prevent a fallback to software encode.
 		The GPU registryID can be obtained from a MTLDevice using [MTLDevice registryID] or can be obtained from OpenGL or OpenCL.
 */
-VT_EXPORT const CFStringRef kVTVideoEncoderSpecification_PreferredEncoderGPURegistryID API_AVAILABLE(macosx(10.14)); // CFNumber, Optional
+VT_EXPORT const CFStringRef kVTVideoEncoderSpecification_PreferredEncoderGPURegistryID API_AVAILABLE(macos(10.14), ios(13.0), tvos(13.0), visionos(1.0)) API_UNAVAILABLE(watchos); // CFNumber, Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_UsingGPURegistryID
@@ -767,7 +769,7 @@
 		You can query this property using VTSessionCopyProperty after building a VTCompressionSession to find out which GPU the encoder is using.
 		If a encoder based on a built-in GPU was used it will return NULL.  If a software encoder is used, it will return NULL
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_UsingGPURegistryID API_AVAILABLE(macosx(10.15)) ; // CFNumberRef, Read;
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_UsingGPURegistryID API_AVAILABLE(macos(10.14), ios(13.0), tvos(13.0), visionos(1.0)) API_UNAVAILABLE(watchos); // CFNumberRef, Read;
 
 /*!
 	@constant  kVTCompressionPropertyKey_SupportsBaseFrameQP
@@ -777,7 +779,7 @@
 		If this property returns kCFBooleanTrue, it indicates that the encoder supports base frame QP requests through kVTEncodeFrameOptionKey_BaseFrameQP. If it returns false or kVTPropertyNotSupportedErr, base frame QP requests will cause errors on VTCompressionSessionEncodeFrame calls, or will be ignored.
 
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_SupportsBaseFrameQP API_AVAILABLE(macosx(12.0), ios(15.0), tvos(15.0)); // Read only, CFBoolean, Optional, false by default
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_SupportsBaseFrameQP API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), visionos(1.0)) API_UNAVAILABLE(watchos); // Read only, CFBoolean, Optional, false by default
 
 #pragma mark Per-frame configuration
 	
@@ -792,7 +794,7 @@
 		Note that it may not be possible for the encoder to accomodate all
 		requests.
 */
-VT_EXPORT const CFStringRef kVTEncodeFrameOptionKey_ForceKeyFrame API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); //  CFBoolean
+VT_EXPORT const CFStringRef kVTEncodeFrameOptionKey_ForceKeyFrame API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); //  CFBoolean
 
 /*!
 	@constant  kVTEncodeFrameOptionKey_BaseFrameQP
@@ -822,7 +824,7 @@
 
 		Note that it may not be possible for the encoder to accommodate all requests.
 */
-VT_EXPORT const CFStringRef kVTEncodeFrameOptionKey_BaseFrameQP API_AVAILABLE(macosx(12.0), ios(15.0), tvos(15.0)); // CFNumberRef, Optional
+VT_EXPORT const CFStringRef kVTEncodeFrameOptionKey_BaseFrameQP API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), visionos(1.0)) API_UNAVAILABLE(watchos); // CFNumberRef, Optional
 
 
 #pragma mark Clean aperture and pixel aspect ratio
@@ -838,7 +840,7 @@
 		and may affect source frame scaling.
 		NULL is a valid value for this property, meaning that the clean aperture is the full width and height.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_CleanAperture API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFDictionary (see CMFormatDescription.h), Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_CleanAperture API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFDictionary (see CMFormatDescription.h), Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_PixelAspectRatio
@@ -851,7 +853,7 @@
 		and may affect source frame scaling.
 		NULL is a valid value for this property, meaning square pixels (1:1).
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_PixelAspectRatio API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFDictionary (see CMFormatDescription.h), Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_PixelAspectRatio API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFDictionary (see CMFormatDescription.h), Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_FieldCount
@@ -862,7 +864,7 @@
 		and may affect source frame scaling.
 		NULL is a valid value for this property.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_FieldCount API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFNumber (see kCMFormatDescriptionExtension_FieldCount), Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_FieldCount API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFNumber (see kCMFormatDescriptionExtension_FieldCount), Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_FieldDetail
@@ -875,7 +877,7 @@
 		and may affect source frame scaling.
 		NULL is a valid value for this property.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_FieldDetail API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFString (see kCMFormatDescriptionExtension_FieldDetail), Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_FieldDetail API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFString (see kCMFormatDescriptionExtension_FieldDetail), Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_AspectRatio16x9
@@ -887,7 +889,7 @@
 		When true, the picture aspect ratio is 16:9.
 		Either way, a fixed PixelAspectRatio is used (the specific value depends on whether the format is NTSC or PAL).
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_AspectRatio16x9 API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFBoolean, Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_AspectRatio16x9 API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFBoolean, Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_ProgressiveScan
@@ -899,7 +901,7 @@
 		If true, content is encoded as progressive.
 		The value of this property fixes the FieldCount and FieldDetail properties.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_ProgressiveScan API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFBoolean, Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_ProgressiveScan API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFBoolean, Optional
 
 #pragma mark Color
 
@@ -912,7 +914,7 @@
 		in those cases this property will be read-only (SetProperty will return kVTPropertyReadOnlyErr).
 		The value will be set on the format description for output sample buffers.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_ColorPrimaries API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFString (see kCMFormatDescriptionExtension_ColorPrimaries), Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_ColorPrimaries API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFString (see kCMFormatDescriptionExtension_ColorPrimaries), Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_TransferFunction
@@ -923,7 +925,7 @@
 		in those cases this property will be read-only (SetProperty will return kVTPropertyReadOnlyErr).
 		The value will be set on the format description for output sample buffers.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_TransferFunction API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFString (see kCMFormatDescriptionExtension_TransferFunction), Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_TransferFunction API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFString (see kCMFormatDescriptionExtension_TransferFunction), Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_YCbCrMatrix
@@ -934,7 +936,7 @@
 		in those cases this property will be read-only (SetProperty will return kVTPropertyReadOnlyErr).
 		The value will be set on the format description for output sample buffers.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_YCbCrMatrix API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFString (see kCMFormatDescriptionExtension_YCbCrMatrix), Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_YCbCrMatrix API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFString (see kCMFormatDescriptionExtension_YCbCrMatrix), Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_ICCProfile
@@ -948,7 +950,7 @@
 		The value will be set on the format description for output sample buffers.
 		NULL can be a valid value for this property.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_ICCProfile API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFData (see kCMFormatDescriptionExtension_ICCProfile), Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_ICCProfile API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFData (see kCMFormatDescriptionExtension_ICCProfile), Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_MasteringDisplayColorVolume
@@ -958,7 +960,7 @@
 		The value will be set on the format description for output sample buffers,
 		and incorporated into the appropriate SEI NAL unit where supported by the encoder.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MasteringDisplayColorVolume API_AVAILABLE(macosx(10.13), ios(11.0), tvos(11.0)); // Read/write, CFData(24 bytes) (see kCMFormatDescriptionExtension_MasteringDisplayColorVolume), Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MasteringDisplayColorVolume API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFData(24 bytes) (see kCMFormatDescriptionExtension_MasteringDisplayColorVolume), Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_ContentLightLevelInfo
@@ -968,7 +970,7 @@
 		The value will be set on the format description for output sample buffers,
 		and incorporated into the appropriate SEI NAL unit where supported by the encoder.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_ContentLightLevelInfo API_AVAILABLE(macosx(10.13), ios(11.0), tvos(11.0)); // Read/write, CFData(4 bytes) (see kCMFormatDescriptionExtension_ContentLightLevelInfo), Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_ContentLightLevelInfo API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFData(4 bytes) (see kCMFormatDescriptionExtension_ContentLightLevelInfo), Optional
 
 
 /*!
@@ -978,7 +980,7 @@
 	@discussion
 		This property allows the caller to specify a gamma value to include in the CMVideoFormatDescription attached to output CMSampleBuffers. It does not change pixel data being encoded.
 */
-	VT_EXPORT const CFStringRef kVTCompressionPropertyKey_GammaLevel VT_AVAILABLE_STARTING(10_9); // Read/write, CFNumber (see kCMFormatDescriptionExtension_GammaLevel), Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_GammaLevel API_AVAILABLE(macos(10.9), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFNumber (see kCMFormatDescriptionExtension_GammaLevel), Optional
 	
 
 /*!
@@ -990,9 +992,9 @@
 		If this property is not set, the encoder may read the first source image buffer's kCVImageBufferAlphaChannelMode attachment.
 		If neither the property nor the first buffer's attachment is set, defaults to kVTAlphaChannelMode_PremultipliedAlpha.
  */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_AlphaChannelMode	API_AVAILABLE(macosx(10.15), ios(13.0), tvos(13.0), watchos(6.0)); // Read/write, Optional, CFString(kVTAlphaChannelMode_*); if property is not set, matches first source frame's attachment; if that's also not set, defaults to premultiplied alpha
-VT_EXPORT const CFStringRef kVTAlphaChannelMode_StraightAlpha	API_AVAILABLE(macosx(10.15), ios(13.0), tvos(13.0), watchos(6.0));
-VT_EXPORT const CFStringRef kVTAlphaChannelMode_PremultipliedAlpha	API_AVAILABLE(macosx(10.15), ios(13.0), tvos(13.0), watchos(6.0));
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_AlphaChannelMode	API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, Optional, CFString(kVTAlphaChannelMode_*); if property is not set, matches first source frame's attachment; if that's also not set, defaults to premultiplied alpha
+VT_EXPORT const CFStringRef kVTAlphaChannelMode_StraightAlpha	API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTAlphaChannelMode_PremultipliedAlpha	API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 	
 #pragma mark Pre-compression processing
@@ -1009,7 +1011,7 @@
 		Setting this property alone does not necessarily guarantee that a VTPixelTransferSession will be created.
 		See VTPixelTransferProperties.h.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_PixelTransferProperties API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/Write, CFDictionary containing properties from VTPixelTransferProperties.h.
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_PixelTransferProperties API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/Write, CFDictionary containing properties from VTPixelTransferProperties.h.
 	
 #pragma mark Multi-pass
 	
@@ -1029,7 +1031,7 @@
 	 
 	You can create and use a VTFrameSilo object to merge sequences of compressed frames across passes during multi-pass encoding.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MultiPassStorage API_AVAILABLE(macosx(10.10), ios(8.0), tvos(10.2)); // VTMultiPassStorage, optional, default is NULL
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MultiPassStorage API_AVAILABLE(macos(10.10), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // VTMultiPassStorage, optional, default is NULL
 
 #pragma mark Encoder information
 	
@@ -1040,7 +1042,7 @@
 	@discussion
 		Matches the value specified in kVTVideoEncoderSpecification_EncoderID, and the kVTVideoEncoderList_EncoderID value returned from VTCopyVideoEncoderList.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_EncoderID API_AVAILABLE(macosx(10.13), ios(11.0), tvos(11.0)); // CFStringRef
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_EncoderID API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), visionos(1.0)) API_UNAVAILABLE(watchos); // CFStringRef
 
 /*!
 	@constant	kVTCompressionPropertyKey_RecommendedParallelizationLimit
@@ -1066,7 +1068,7 @@
 				kVTCompressionPropertyKey_MoreFramesAfterEnd = false
 				kVTCompressionPropertyKey_SourceFrameCount = 100
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_RecommendedParallelizationLimit API_AVAILABLE(macosx(14.0)) API_UNAVAILABLE(ios, tvos, watchos); // Read-only, CFNumber<int>
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_RecommendedParallelizationLimit API_AVAILABLE(macos(14.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos); // Read-only, CFNumber<int>
 
 /*!
 	@constant	kVTCompressionPropertyKey_RecommendedParallelizedSubdivisionMinimumFrameCount
@@ -1077,7 +1079,7 @@
 		See also kVTCompressionPropertyKey_RecommendedParallelizationLimit
 		See also kVTCompressionPropertyKey_RecommendedParallelizedSubdivisionMinimumDuration
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_RecommendedParallelizedSubdivisionMinimumFrameCount API_AVAILABLE(macosx(14.0)) API_UNAVAILABLE(ios, tvos, watchos); // Read-only, CFNumber<uint64_t>
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_RecommendedParallelizedSubdivisionMinimumFrameCount API_AVAILABLE(macos(14.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos); // Read-only, CFNumber<uint64_t>
 
 /*!
 	@constant	kVTCompressionPropertyKey_RecommendedParallelizedSubdivisionMinimumDuration
@@ -1088,7 +1090,7 @@
 		See also kVTCompressionPropertyKey_RecommendedParallelizationLimit
 		See also kVTCompressionPropertyKey_RecommendedParallelizedSubdivisionMinimumFrameCount
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_RecommendedParallelizedSubdivisionMinimumDuration API_AVAILABLE(macosx(14.0)) API_UNAVAILABLE(ios, tvos, watchos); // Read-only, CMTime as CFDictionary
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_RecommendedParallelizedSubdivisionMinimumDuration API_AVAILABLE(macos(14.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos); // Read-only, CMTime as CFDictionary
 
 /*!
 	@constant	kVTCompressionPropertyKey_PreserveDynamicHDRMetadata
@@ -1100,7 +1102,7 @@
 		dynamic HDR metadata for the pixel buffer, if the HDR format is supported.
 */
 VT_EXPORT const CFStringRef kVTCompressionPropertyKey_PreserveDynamicHDRMetadata // CFBoolean, Write, Optional
-							API_AVAILABLE(macosx(11.0), ios(14.0), tvos(14.0));
+							API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@constant	kVTVideoEncoderSpecification_EnableLowLatencyRateControl
@@ -1118,7 +1120,7 @@
 			kVTCompressionPropertyKey_BaseLayerFrameRateFraction
 			kVTEncodeFrameOptionKey_ForceKeyFrame
 */
-VT_EXPORT const CFStringRef kVTVideoEncoderSpecification_EnableLowLatencyRateControl API_AVAILABLE(macosx(11.3), ios(14.5), tvos(14.5)); // Read/write, CFBoolean, Optional
+VT_EXPORT const CFStringRef kVTVideoEncoderSpecification_EnableLowLatencyRateControl API_AVAILABLE(macos(11.3), ios(14.5), tvos(14.5), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFBoolean, Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_MaxAllowedFrameQP
@@ -1130,7 +1132,7 @@
 		This is not supported in all encoders or in all encoder operating modes. kVTPropertyNotSupportedErr will be
 		returned when this option is not supported.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MaxAllowedFrameQP API_AVAILABLE(macosx(12.0), ios(15.0), tvos(15.0)); // Read/write, CFNumberRef, Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MaxAllowedFrameQP API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFNumberRef, Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_MinAllowedFrameQP
@@ -1142,7 +1144,7 @@
 		This is not supported in all encoders or in all encoder operating modes. kVTPropertyNotSupportedErr will be
 		returned when this option is not supported.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MinAllowedFrameQP API_AVAILABLE(macosx(13.0), ios(16.0), tvos(16.0)); // Read/write, CFNumberRef, Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MinAllowedFrameQP API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFNumberRef, Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_EnableLTR
@@ -1163,7 +1165,7 @@
 			kVTEncodeFrameOptionKey_ForceLTRRefresh
 			kVTSampleAttachmentKey_RequireLTRAcknowledgementToken
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_EnableLTR API_AVAILABLE(macosx(12.0), ios(15.0), tvos(15.0)); // Read/write, CFBoolean, Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_EnableLTR API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFBoolean, Optional
 
 /*!
 	@constant	kVTEncodeFrameOptionKey_AcknowledgedLTRTokens
@@ -1178,7 +1180,7 @@
 		kVTEncodeFrameOptionKey_ForceLTRRefresh
 		kVTSampleAttachmentKey_RequireLTRAcknowledgementToken
 */
-VT_EXPORT const CFStringRef kVTEncodeFrameOptionKey_AcknowledgedLTRTokens API_AVAILABLE(macosx(12.0), ios(15.0), tvos(15.0)); // CFArray[CFNumberRef], Optional
+VT_EXPORT const CFStringRef kVTEncodeFrameOptionKey_AcknowledgedLTRTokens API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), visionos(1.0)) API_UNAVAILABLE(watchos); // CFArray[CFNumberRef], Optional
 
 /*!
 	@constant	kVTEncodeFrameOptionKey_ForceLTRRefresh
@@ -1193,7 +1195,7 @@
 			kVTEncodeFrameOptionKey_AcknowledgedLTRTokens
 			kVTSampleAttachmentKey_RequireLTRAcknowledgementToken
 */
-VT_EXPORT const CFStringRef kVTEncodeFrameOptionKey_ForceLTRRefresh API_AVAILABLE(macosx(12.0), ios(15.0), tvos(15.0)); // CFNumberRef, Optional
+VT_EXPORT const CFStringRef kVTEncodeFrameOptionKey_ForceLTRRefresh API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), visionos(1.0)) API_UNAVAILABLE(watchos); // CFNumberRef, Optional
 
 /*!
 	@constant	kVTSampleAttachmentKey_RequireLTRAcknowledgementToken
@@ -1208,7 +1210,7 @@
 			kVTEncodeFrameOptionKey_AcknowledgedLTRTokens
 			kVTEncodeFrameOptionKey_ForceLTRRefresh
 */
-VT_EXPORT const CFStringRef kVTSampleAttachmentKey_RequireLTRAcknowledgementToken API_AVAILABLE(macosx(12.0), ios(15.0), tvos(15.0)); // CFNumberRef, Optional
+VT_EXPORT const CFStringRef kVTSampleAttachmentKey_RequireLTRAcknowledgementToken API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), visionos(1.0)) API_UNAVAILABLE(watchos); // CFNumberRef, Optional
 
 #pragma mark Multi-image compression
 
@@ -1221,7 +1223,7 @@
         The property value is a CFArray containing VideoLayerIDs as CFNumbers.
         The property is NULL by default.
  */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MVHEVCVideoLayerIDs API_AVAILABLE(macos(14.0), ios(17.0)) API_UNAVAILABLE(tvos, watchos); // Read/write, CFArray(CFNumber), Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MVHEVCVideoLayerIDs API_AVAILABLE(macos(14.0), ios(17.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos); // Read/write, CFArray(CFNumber), Optional
 
 /*!
     @constant	kVTCompressionPropertyKey_MVHEVCViewIDs
@@ -1233,7 +1235,7 @@
         The entries in this array should be in the same order and have the same count as the value set via kVTCompressionPropertyKey_MVHEVCVideoLayerIDs.
         The property is NULL by default.
  */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MVHEVCViewIDs API_AVAILABLE(macos(14.0), ios(17.0)) API_UNAVAILABLE(tvos, watchos); // Read/write, CFArray(CFNumber), Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MVHEVCViewIDs API_AVAILABLE(macos(14.0), ios(17.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos); // Read/write, CFArray(CFNumber), Optional
 
 /*!
     @constant	kVTCompressionPropertyKey_MVHEVCLeftAndRightViewIDs
@@ -1245,7 +1247,7 @@
         The property value is a CFArray containing two ViewIDs as CFNumbers with the first correspponding to the left eye and the second corresponding to the right eye.
         The property is NULL by default.
  */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MVHEVCLeftAndRightViewIDs API_AVAILABLE(macos(14.0), ios(17.0)) API_UNAVAILABLE(tvos, watchos); // Read/write, CFArray[CFNumber(left view ID), CFNumber(right view ID)], Optional
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MVHEVCLeftAndRightViewIDs API_AVAILABLE(macos(14.0), ios(17.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos); // Read/write, CFArray[CFNumber(left view ID), CFNumber(right view ID)], Optional
 
 #pragma mark VideoExtendedUsage signaling
 
@@ -1256,7 +1258,7 @@
     @discussion
         The value will be set on the format description for output samples and may affect the decoded frame presentation.
  */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_HeroEye API_AVAILABLE(macos(14.0), ios(17.0)) API_UNAVAILABLE(tvos, watchos);	// CFString, see kCMFormatDescriptionExtension_HeroEye
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_HeroEye API_AVAILABLE(macos(14.0), ios(17.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos);	// CFString, see kCMFormatDescriptionExtension_HeroEye
 
 /*!
 	@constant	kVTCompressionPropertyKey_StereoCameraBaseline
@@ -1265,7 +1267,7 @@
     @discussion
         The value will be set on the format description for output samples and may affect the decoded frame presentation.
  */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_StereoCameraBaseline API_AVAILABLE(macos(14.0), ios(17.0)) API_UNAVAILABLE(tvos, watchos);	// CFNumber(uint32), see kCMFormatDescriptionExtension_StereoCameraBaseline
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_StereoCameraBaseline API_AVAILABLE(macos(14.0), ios(17.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos);	// CFNumber(uint32), see kCMFormatDescriptionExtension_StereoCameraBaseline
 
 /*!
     @constant	kVTCompressionPropertyKey_HorizontalDisparityAdjustment
@@ -1275,7 +1277,7 @@
         The value will be set on the format description for output samples and may affect the decoded frame presentation.
  */
 
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_HorizontalDisparityAdjustment API_AVAILABLE(macos(14.0), ios(17.0)) API_UNAVAILABLE(tvos, watchos);	// CFNumber(int32), see kCMFormatDescriptionExtension_HorizontalDisparityAdjustment
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_HorizontalDisparityAdjustment API_AVAILABLE(macos(14.0), ios(17.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos);	// CFNumber(int32), see kCMFormatDescriptionExtension_HorizontalDisparityAdjustment
 
 /*!
     @constant    kVTCompressionPropertyKey_HasLeftStereoEyeView
@@ -1284,7 +1286,7 @@
     @discussion
         The value will be set on the format description for output samples and may affect the decoded frame presentation.
  */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_HasLeftStereoEyeView API_AVAILABLE(macos(14.0), ios(17.0)) API_UNAVAILABLE(tvos, watchos);  // CFBoolean, see kCMFormatDescriptionExtension_HasLeftStereoEyeView
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_HasLeftStereoEyeView API_AVAILABLE(macos(14.0), ios(17.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos);  // CFBoolean, see kCMFormatDescriptionExtension_HasLeftStereoEyeView
 
 /*!
     @constant    kVTCompressionPropertyKey_HasRightStereoEyeView
@@ -1293,7 +1295,7 @@
     @discussion
         The value will be set on the format description for output samples and may affect the decoded frame presentation.
  */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_HasRightStereoEyeView API_AVAILABLE(macos(14.0), ios(17.0)) API_UNAVAILABLE(tvos, watchos);  // CFBoolean, see kCMFormatDescriptionExtension_HasRightStereoEyeView
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_HasRightStereoEyeView API_AVAILABLE(macos(14.0), ios(17.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos);  // CFBoolean, see kCMFormatDescriptionExtension_HasRightStereoEyeView
 
 /*!
     @constant    kVTCompressionPropertyKey_HorizontalFieldOfView
@@ -1303,7 +1305,55 @@
     The value is a CFNumber holding an unsigned 32-bit integer that is interpreted in millidegree or thousandths of a degree (e.g., 123456 is 123.456 degree).
     This property is optional and should only be specified if the field of view is known.
 */
-VT_EXPORT const CFStringRef kVTCompressionPropertyKey_HorizontalFieldOfView API_AVAILABLE(macos(14.4), ios(17.4)) API_UNAVAILABLE(tvos, watchos);     // CFNumber(uint32) as millidegrees
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_HorizontalFieldOfView API_AVAILABLE(macos(14.4), ios(17.4), visionos(1.1)) API_UNAVAILABLE(tvos, watchos);     // CFNumber(uint32) as millidegrees
+
+/*!
+	@constant	kVTCompressionPropertyKey_ProjectionKind
+	@abstract
+		Specifies the value of kCMFormatDescriptionExtension_ProjectionKind.
+	@discussion
+		The value will be set on the format description for output samples and may affect the decoded frame presentation.
+ */
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_ProjectionKind API_AVAILABLE(macos(15.0), ios(18.0), visionos(2.0)) API_UNAVAILABLE(tvos, watchos);  // CFString, see kCMFormatDescriptionExtension_ProjectionKind.
+
+/*!
+	@constant	kVTCompressionPropertyKey_ViewPackingKind
+	@abstract
+		Specifies the value of kCMFormatDescriptionExtension_ViewPackingKind.
+	@discussion
+		The value will be set on the format description for output samples and may affect the decoded frame presentation.
+ */
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_ViewPackingKind API_AVAILABLE(macos(15.0), ios(18.0), visionos(2.0)) API_UNAVAILABLE(tvos, watchos); // CFString, see kCMFormatDescriptionExtension_ViewPackingKind.
+	
+/*!
+    @constant	kVTCompressionPropertyKey_SuggestedLookAheadFrameCount
+	@abstract
+		Requests that the encoder retain the specified number of frames during encoding. These frames will be used for additional analysis and statistics
+		gathering before the frame is finally encoded at the end of the window. When this property is not set, video encoder will automatically determine
+		the number of lookahead frames.
+	@discussion
+		Encoder will choose number of lookahead frames closer to the suggested value based on internal configuration. This property directly affects latency
+		of the video encoder. The following properties also affect look ahead frames:
+		1. Value of this property must be less than or equal to `kVTCompressionPropertyKey_MaxFrameDelayCount`.
+		2. This property is ignored when `VTVideoEncoderSpecification_EnableLowLatencyRateControl` is set to true
+		3. This property is ignored when `kVTCompressionPropertyKey_Quality` is set to 1.0
+		4. This property can not be used in conjunction with multi-pass feature (`kVTCompressionPropertyKey_MultiPassStorage`)
+*/
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_SuggestedLookAheadFrameCount API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos); // Read/write, CFNumberRef, Optional
+
+/*!
+	@constant	kVTCompressionPropertyKey_SpatialAdaptiveQPLevel
+	@abstract
+		Control spatial adaptation of the quantization parameter (QP) based on per-frame statistics.
+		If set to kVTAdaptiveQPLevel_Disable, spatial QP adaptation is not applied based on per-frame statistics.
+		If set to kVTAdaptiveQPLevel_Default, video encoder is allowed to apply spatial QP adaptation for each macro block (or coding unit) within a video frame.
+ 		QP adaptation is based on spatial characteristics of a frame and the level of spatial QP adaptation is decided internally by the rate controller.
+*/
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_SpatialAdaptiveQPLevel API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos); // Read/write, CFNumberRef, Optional
+enum {
+	kVTQPModulationLevel_Default = -1,
+	kVTQPModulationLevel_Disable = 0,
+};
 
 	
 CM_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTCompressionSession.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTCompressionSession.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTCompressionSession.h	2024-04-17 07:19:22
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTCompressionSession.h	2024-05-30 10:44:42
@@ -83,7 +83,7 @@
 		void * CM_NULLABLE sourceFrameRefCon, 
 		OSStatus status, 
 		VTEncodeInfoFlags infoFlags,
-		CM_NULLABLE CMSampleBufferRef sampleBuffer );
+		CM_NULLABLE CMSampleBufferRef sampleBuffer ) API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 	
 CM_ASSUME_NONNULL_BEGIN
 		
@@ -97,7 +97,7 @@
 		The EncoderID CFString may be obtained from the kVTVideoEncoderList_EncoderID entry in
 		the array returned by VTCopyVideoEncoderList.
 */
-VT_EXPORT const CFStringRef kVTVideoEncoderSpecification_EncoderID API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // CFString
+VT_EXPORT const CFStringRef kVTVideoEncoderSpecification_EncoderID API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // CFString
 
 CM_ASSUME_NONNULL_END
 
@@ -149,7 +149,7 @@
 	CM_NULLABLE CFAllocatorRef							compressedDataAllocator,
 	CM_NULLABLE VTCompressionOutputCallback				outputCallback,
 	void * CM_NULLABLE									outputCallbackRefCon,
-	CM_RETURNS_RETAINED_PARAMETER CM_NULLABLE VTCompressionSessionRef * CM_NONNULL compressionSessionOut) API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
+	CM_RETURNS_RETAINED_PARAMETER CM_NULLABLE VTCompressionSessionRef * CM_NONNULL compressionSessionOut) API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 CF_IMPLICIT_BRIDGING_ENABLED
 	
@@ -164,14 +164,14 @@
     	Calling VTCompressionSessionInvalidate ensures a deterministic, orderly teardown.
 */
 VT_EXPORT void 
-VTCompressionSessionInvalidate( CM_NONNULL VTCompressionSessionRef session ) API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
+VTCompressionSessionInvalidate( CM_NONNULL VTCompressionSessionRef session ) API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@function VTCompressionSessionGetTypeID
 	@abstract Returns the CFTypeID for compression sessions.  
 */
 VT_EXPORT CFTypeID 
-VTCompressionSessionGetTypeID(void) API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
+VTCompressionSessionGetTypeID(void) API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@function	VTCompressionSessionGetPixelBufferPool
@@ -193,7 +193,7 @@
 */
 VT_EXPORT CM_NULLABLE CVPixelBufferPoolRef
 VTCompressionSessionGetPixelBufferPool(
-	CM_NONNULL VTCompressionSessionRef		session ) API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
+	CM_NONNULL VTCompressionSessionRef		session ) API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@function	VTCompressionSessionPrepareToEncodeFrames
@@ -209,7 +209,7 @@
 		The compression session.
 */
 VT_EXPORT OSStatus
-VTCompressionSessionPrepareToEncodeFrames( CM_NONNULL VTCompressionSessionRef session ) API_AVAILABLE(macosx(10.9), ios(8.0), tvos(10.2));
+VTCompressionSessionPrepareToEncodeFrames( CM_NONNULL VTCompressionSessionRef session ) API_AVAILABLE(macos(10.9), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 	
 /*!
 	@function	VTCompressionSessionEncodeFrame
@@ -251,7 +251,7 @@
 	CMTime								duration, // may be kCMTimeInvalid
 	CM_NULLABLE CFDictionaryRef			frameProperties,
 	void * CM_NULLABLE					sourceFrameRefcon,
-	VTEncodeInfoFlags * CM_NULLABLE		infoFlagsOut ) API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
+	VTEncodeInfoFlags * CM_NULLABLE		infoFlagsOut ) API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 	
 #if __BLOCKS__
 /*!
@@ -274,7 +274,7 @@
 typedef void (^VTCompressionOutputHandler)(
 		OSStatus status,
 		VTEncodeInfoFlags infoFlags,
-		CM_NULLABLE CMSampleBufferRef sampleBuffer ) CM_SWIFT_SENDABLE;
+		CM_NULLABLE CMSampleBufferRef sampleBuffer ) CM_SWIFT_SENDABLE API_AVAILABLE(macos(10.11), ios(9.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 	
 /*!
 	@function	VTCompressionSessionEncodeFrameWithOutputHandler
@@ -318,7 +318,7 @@
 		CMTime									duration, // may be kCMTimeInvalid
 		CM_NULLABLE CFDictionaryRef				frameProperties, // may be NULL
 		VTEncodeInfoFlags * CM_NULLABLE			infoFlagsOut,
-		CM_NONNULL VTCompressionOutputHandler	outputHandler ) API_AVAILABLE(macosx(10.11), ios(9.0), tvos(10.2));
+		CM_NONNULL VTCompressionOutputHandler	outputHandler ) API_AVAILABLE(macos(10.11), ios(9.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 #endif // __BLOCKS__
 
 /*!
@@ -333,7 +333,7 @@
 VT_EXPORT OSStatus
 VTCompressionSessionCompleteFrames(
 	CM_NONNULL VTCompressionSessionRef	session,
-	CMTime								completeUntilPresentationTimeStamp) API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // complete all frames if non-numeric
+	CMTime								completeUntilPresentationTimeStamp) API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // complete all frames if non-numeric
 	
 #pragma mark Multi-image compression
 
@@ -343,7 +343,7 @@
 	@discussion   This call returning true does not guarantee that encode resources will be available at all times.
  */
 VT_EXPORT Boolean
-VTIsStereoMVHEVCEncodeSupported( void ) API_AVAILABLE(macos(14.0), ios(17.0));
+VTIsStereoMVHEVCEncodeSupported( void ) API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@function	VTCompressionSessionEncodeMultiImageFrame
@@ -384,7 +384,7 @@
 		CMTime								duration, // may be kCMTimeInvalid
 		CM_NULLABLE CFDictionaryRef			frameProperties,
 		void * CM_NULLABLE					sourceFrameRefcon,
-		VTEncodeInfoFlags * CM_NULLABLE		infoFlagsOut ) API_AVAILABLE(macosx(14.0), ios(17.0)) API_UNAVAILABLE(tvos) CF_SWIFT_UNAVAILABLE("Unavailable in Swift");
+		VTEncodeInfoFlags * CM_NULLABLE		infoFlagsOut ) API_AVAILABLE(macos(14.0), ios(17.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos) CF_SWIFT_UNAVAILABLE("Unavailable in Swift");
 
 
 #if __BLOCKS__
@@ -429,7 +429,7 @@
 		CMTime									duration, // may be kCMTimeInvalid
 		CM_NULLABLE CFDictionaryRef				frameProperties, // may be NULL
 		VTEncodeInfoFlags * CM_NULLABLE			infoFlagsOut,
-		CM_NONNULL VTCompressionOutputHandler	outputHandler ) API_AVAILABLE(macosx(14.0), ios(17.0)) API_UNAVAILABLE(tvos) CF_REFINED_FOR_SWIFT;
+		CM_NONNULL VTCompressionOutputHandler	outputHandler ) API_AVAILABLE(macos(14.0), ios(17.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos) CF_REFINED_FOR_SWIFT;
 #endif // __BLOCKS__
 
 #pragma mark Multi-pass
@@ -441,7 +441,7 @@
 	
 typedef CF_OPTIONS(uint32_t, VTCompressionSessionOptionFlags) {
 	kVTCompressionSessionBeginFinalPass = 1<<0
-};
+} API_AVAILABLE(macos(10.10), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@function	VTCompressionSessionBeginPass
@@ -456,7 +456,7 @@
 VTCompressionSessionBeginPass(
 	CM_NONNULL VTCompressionSessionRef	session,
 	VTCompressionSessionOptionFlags		beginPassFlags,
-	uint32_t * CM_NULLABLE				reserved) API_AVAILABLE(macosx(10.10), ios(8.0), tvos(10.2));
+	uint32_t * CM_NULLABLE				reserved) API_AVAILABLE(macos(10.10), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 	
 /*!
 	@function	VTCompressionSessionEndPass
@@ -473,7 +473,7 @@
 VTCompressionSessionEndPass(
 	CM_NONNULL VTCompressionSessionRef	session,
 	Boolean * CM_NULLABLE				furtherPassesRequestedOut,
-	uint32_t * CM_NULLABLE				reserved) API_AVAILABLE(macosx(10.10), ios(8.0), tvos(10.2));
+	uint32_t * CM_NULLABLE				reserved) API_AVAILABLE(macos(10.10), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 	
 /*!
 	 @function	VTCompressionSessionGetTimeRangesForNextPass
@@ -493,7 +493,7 @@
 VTCompressionSessionGetTimeRangesForNextPass(
 	CM_NONNULL VTCompressionSessionRef				session,
 	CMItemCount * CM_NONNULL						timeRangeCountOut,
-	const CMTimeRange * CM_NULLABLE * CM_NONNULL	timeRangeArrayOut ) API_AVAILABLE(macosx(10.10), ios(8.0), tvos(10.2)); /* returned pointer will be valid until next call to VTCompressionSessionEndPass */
+	const CMTimeRange * CM_NULLABLE * CM_NONNULL	timeRangeArrayOut ) API_AVAILABLE(macos(10.10), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); /* returned pointer will be valid until next call to VTCompressionSessionEndPass */
 
 // See VTSession.h for property access APIs on VTCompressionSessions.
 // See VTCompressionProperties.h for standard property keys and values for compression sessions.
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionProperties.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionProperties.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionProperties.h	2024-04-17 06:40:46
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionProperties.h	2024-05-30 10:44:42
@@ -53,7 +53,7 @@
 		This pixel buffer pool is always compatible with the client's pixel buffer attributes
 		as specified when calling VTDecompressionSessionCreate.
 */
-VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_PixelBufferPool API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read-only, CVPixelBufferPool
+VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_PixelBufferPool API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read-only, CVPixelBufferPool
 
 /*!
 	@constant	kVTDecompressionPropertyKey_PixelBufferPoolIsShared
@@ -64,7 +64,7 @@
 		This is false if separate pools are used because the pixel buffer attributes specified 
 		by the video decoder and the client were incompatible.
 */
-VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_PixelBufferPoolIsShared API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read-only, CFBoolean
+VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_PixelBufferPoolIsShared API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read-only, CFBoolean
 
 /*!
 	@constant	kVTDecompressionPropertyKey_OutputPoolRequestedMinimumBufferCount
@@ -88,7 +88,7 @@
 		creation of a new CVPixelBufferPool. This will cause new buffers to be allocated, and 
 		existing buffers to be deallocated when they are released.
 */
-VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_OutputPoolRequestedMinimumBufferCount API_AVAILABLE(macosx(10.9), ios(8.0), tvos(10.2)); // Read/Write, CFNumberRef
+VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_OutputPoolRequestedMinimumBufferCount API_AVAILABLE(macos(10.9), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/Write, CFNumberRef
 
 #pragma mark Asynchronous state
 
@@ -102,7 +102,7 @@
 	@discussion
 		This number may decrease asynchronously as frames are output.
 */
-VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_NumberOfFramesBeingDecoded API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read-only, CFNumber.
+VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_NumberOfFramesBeingDecoded API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read-only, CFNumber.
 
 /*!
 	@constant	kVTDecompressionPropertyKey_MinOutputPresentationTimeStampOfFramesBeingDecoded
@@ -111,7 +111,7 @@
 	@discussion
 		This may change asynchronously as frames are output.
 */
-VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_MinOutputPresentationTimeStampOfFramesBeingDecoded API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read-only, CMTime as CFDictionary.
+VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_MinOutputPresentationTimeStampOfFramesBeingDecoded API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read-only, CMTime as CFDictionary.
 
 /*!
 	@constant	kVTDecompressionPropertyKey_MaxOutputPresentationTimeStampOfFramesBeingDecoded
@@ -120,7 +120,7 @@
 	@discussion
 		This may change asynchronously as frames are output.
 */
-VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_MaxOutputPresentationTimeStampOfFramesBeingDecoded API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read-only, CMTime as CFDictionary.
+VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_MaxOutputPresentationTimeStampOfFramesBeingDecoded API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read-only, CMTime as CFDictionary.
 	
 #pragma mark Content
 
@@ -134,7 +134,7 @@
 	@discussion
 		This is an optional property for video decoders to implement.
 */
-VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_ContentHasInterframeDependencies API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read-only, CFBoolean
+VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_ContentHasInterframeDependencies API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read-only, CFBoolean
 
 #pragma mark Hardware acceleration
 
@@ -149,7 +149,7 @@
 		this property can be set to kCFBooleanFalse.
 		In MacOS 10.15 and later, hardware decode is enabled in VTDecompressionSessions by default.
 */
-VT_EXPORT const CFStringRef kVTVideoDecoderSpecification_EnableHardwareAcceleratedVideoDecoder API_AVAILABLE(macosx(10.9), ios(17.0), tvos(17.0)); // CFBoolean, Optional, true by default
+VT_EXPORT const CFStringRef kVTVideoDecoderSpecification_EnableHardwareAcceleratedVideoDecoder API_AVAILABLE(macos(10.9), ios(17.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos); // CFBoolean, Optional, true by default
 
 /*!
 	@constant	kVTVideoDecoderSpecification_RequireHardwareAcceleratedVideoDecoder
@@ -169,7 +169,7 @@
 			- the requested decoding format or configuration is not supported
 			- the hardware decode resources on the machine are busy
 */
-VT_EXPORT const CFStringRef kVTVideoDecoderSpecification_RequireHardwareAcceleratedVideoDecoder API_AVAILABLE(macosx(10.9), ios(17.0), tvos(17.0)); // CFBoolean, Optional
+VT_EXPORT const CFStringRef kVTVideoDecoderSpecification_RequireHardwareAcceleratedVideoDecoder API_AVAILABLE(macos(10.9), ios(17.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos); // CFBoolean, Optional
 
 /*!
 	@constant	kVTDecompressionPropertyKey_UsingHardwareAcceleratedVideoDecoder
@@ -180,7 +180,7 @@
 		accelerated decode using kVTVideoDecoderSpecification_EnableHardwareAcceleratedVideoDecoder
 		to see if a hardware accelerated decoder was selected.
 */
-VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_UsingHardwareAcceleratedVideoDecoder API_AVAILABLE(macosx(10.9), ios(17.0), tvos(17.0)) ; // CFBoolean, Read; assumed false by default
+VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_UsingHardwareAcceleratedVideoDecoder API_AVAILABLE(macos(10.9), ios(17.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos); // CFBoolean, Read; assumed false by default
 	
 #pragma mark Decoder behavior
 
@@ -194,7 +194,7 @@
 		By default, the VideoToolbox will treat the VTDecompressionSession as though it is being used for
 		realtime playback.  Setting the property to NULL is equivalent to setting it to kCFBooleanTrue.
 */
-VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_RealTime API_AVAILABLE(macosx(10.10), ios(8.0), tvos(10.2)); // Read/write, CFBoolean or NULL, Optional, default is true
+VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_RealTime API_AVAILABLE(macos(10.10), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFBoolean or NULL, Optional, default is true
 
 /*!
 	@constant	kVTDecompressionPropertyKey_MaximizePowerEfficiency
@@ -208,7 +208,7 @@
  		Not all video decoders may support this property
 		By default, this property is NULL.
  */
-VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_MaximizePowerEfficiency API_AVAILABLE(macos(10.14), ios(8.0), tvos(10.2)); // Read/write, CFBoolean or NULL, Optional, default is false
+VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_MaximizePowerEfficiency API_AVAILABLE(macos(10.14), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFBoolean or NULL, Optional, default is false
 
 /*!
 	@constant	kVTDecompressionPropertyKey_ThreadCount
@@ -217,7 +217,7 @@
 	@discussion
 		This is an optional property for video decoders to implement.
 */
-VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_ThreadCount API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFNumber
+VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_ThreadCount API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFNumber
 
 // Standard properties about quality of service.
 // By default, a decoder should completely decode every frame at full resolution.
@@ -231,12 +231,12 @@
 		This is an optional property for video decoders to implement.
 		Decoders should only accept the modes that they will implement.
 */
-VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_FieldMode API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFString, one of
-VT_EXPORT const CFStringRef kVTDecompressionProperty_FieldMode_BothFields API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTDecompressionProperty_FieldMode_TopFieldOnly API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTDecompressionProperty_FieldMode_BottomFieldOnly API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTDecompressionProperty_FieldMode_SingleField API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));  // Most appropriate of either TopFieldOnly or BottomFieldOnly
-VT_EXPORT const CFStringRef kVTDecompressionProperty_FieldMode_DeinterlaceFields API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
+VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_FieldMode API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFString, one of
+VT_EXPORT const CFStringRef kVTDecompressionProperty_FieldMode_BothFields API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTDecompressionProperty_FieldMode_TopFieldOnly API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTDecompressionProperty_FieldMode_BottomFieldOnly API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTDecompressionProperty_FieldMode_SingleField API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);  // Most appropriate of either TopFieldOnly or BottomFieldOnly
+VT_EXPORT const CFStringRef kVTDecompressionProperty_FieldMode_DeinterlaceFields API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@constant	kVTDecompressionPropertyKey_DeinterlaceMode
@@ -248,9 +248,9 @@
 		This property is only applicable if kVTDecompressionPropertyKey_FieldMode 
 		is set to kVTDecompressionProperty_FieldMode_DeinterlaceFields.
 */
-VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_DeinterlaceMode API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));   // Read/write, CFString; only applicable if kVTDecompressionPropertyKey_FieldMode is kVTDecompressionProperty_FieldMode_DeinterlaceFields; supported values may include:
-VT_EXPORT const CFStringRef kVTDecompressionProperty_DeinterlaceMode_VerticalFilter API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));   // apply 0.25-0.50-0.25 vertical filter to individual interlaced frames; default mode
-VT_EXPORT const CFStringRef kVTDecompressionProperty_DeinterlaceMode_Temporal API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));	// apply filter that makes use of a window of multiple frames to generate deinterlaced results, and provides a better result at the expense of a pipeline delay; this mode is only used if kVTDecodeFrame_EnableTemporalProcessing is set, otherwise a non-temporal mode (eg, VerticalFilter) will be used instead
+VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_DeinterlaceMode API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);   // Read/write, CFString; only applicable if kVTDecompressionPropertyKey_FieldMode is kVTDecompressionProperty_FieldMode_DeinterlaceFields; supported values may include:
+VT_EXPORT const CFStringRef kVTDecompressionProperty_DeinterlaceMode_VerticalFilter API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);   // apply 0.25-0.50-0.25 vertical filter to individual interlaced frames; default mode
+VT_EXPORT const CFStringRef kVTDecompressionProperty_DeinterlaceMode_Temporal API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);	// apply filter that makes use of a window of multiple frames to generate deinterlaced results, and provides a better result at the expense of a pipeline delay; this mode is only used if kVTDecodeFrame_EnableTemporalProcessing is set, otherwise a non-temporal mode (eg, VerticalFilter) will be used instead
 
 /*!
 	@constant	kVTDecompressionPropertyKey_ReducedResolutionDecode
@@ -261,9 +261,9 @@
 		Decoders that only support a fixed set of resolutions should pick the smallest resolution 
 		greater than or equal to the requested width x height.
 */
-VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_ReducedResolutionDecode API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFDictionary containing width and height keys and CFNumber values:
-VT_EXPORT const CFStringRef kVTDecompressionResolutionKey_Width API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // CFNumber
-VT_EXPORT const CFStringRef kVTDecompressionResolutionKey_Height API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // CFNumber
+VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_ReducedResolutionDecode API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFDictionary containing width and height keys and CFNumber values:
+VT_EXPORT const CFStringRef kVTDecompressionResolutionKey_Width API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // CFNumber
+VT_EXPORT const CFStringRef kVTDecompressionResolutionKey_Height API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // CFNumber
 
 /*!
 	@constant	kVTDecompressionPropertyKey_ReducedCoefficientDecode
@@ -274,7 +274,7 @@
 		Only decoders for which such approximations make sense should implement this property.
 		The meaning of the number of coefficients will be decoder-specific.
 */
-VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_ReducedCoefficientDecode API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFNumber
+VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_ReducedCoefficientDecode API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFNumber
 	
 	
 /*!
@@ -291,7 +291,7 @@
 		If the decoder does not support this property directly, but reports that the content has 
 		no interframe dependencies, the video toolbox may step in and perform simple frame dropping.
 */
-VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_ReducedFrameDelivery API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFNumber in range [0.0,1.0].
+VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_ReducedFrameDelivery API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFNumber in range [0.0,1.0].
 
 /*!
 	@constant	kVTDecompressionPropertyKey_OnlyTheseFrames
@@ -303,11 +303,11 @@
 		this property, the ReducedFrameDelivery is the proportion of the frames selected by this property: 
 		0.25 and IFrames would indicate that only one I frame in every four should be delivered.
 */
-VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_OnlyTheseFrames API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/write, CFString, supported values may include:
-VT_EXPORT const CFStringRef kVTDecompressionProperty_OnlyTheseFrames_AllFrames API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTDecompressionProperty_OnlyTheseFrames_NonDroppableFrames API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTDecompressionProperty_OnlyTheseFrames_IFrames API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTDecompressionProperty_OnlyTheseFrames_KeyFrames API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
+VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_OnlyTheseFrames API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFString, supported values may include:
+VT_EXPORT const CFStringRef kVTDecompressionProperty_OnlyTheseFrames_AllFrames API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTDecompressionProperty_OnlyTheseFrames_NonDroppableFrames API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTDecompressionProperty_OnlyTheseFrames_IFrames API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTDecompressionProperty_OnlyTheseFrames_KeyFrames API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 	
 /*!
 	@constant       kVTDecompressionProperty_TemporalLevelLimit
@@ -321,7 +321,7 @@
 		For more information on temporal levels, see kCMSampleAttachmentKey_HEVCTemporalLevelInfo
 		in CoreMedia/CMSampleBuffer.h
 */
-VT_EXPORT const CFStringRef kVTDecompressionProperty_TemporalLevelLimit API_AVAILABLE(macosx(10.13), ios(11.0), tvos(10.4)); // Read/write, CFNumber
+VT_EXPORT const CFStringRef kVTDecompressionProperty_TemporalLevelLimit API_AVAILABLE(macos(10.13), ios(11.0), tvos(10.4), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFNumber
 	
 /*!
 	@constant	kVTDecompressionPropertyKey_SuggestedQualityOfServiceTiers
@@ -336,7 +336,7 @@
 		decreasing qualities of service.  Clients may work their way down these tiers until they are 
 		able to keep up with the frame rate.
 */
-VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_SuggestedQualityOfServiceTiers API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read-only, CFArray of CFDictionaries containing property key/value pairs
+VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_SuggestedQualityOfServiceTiers API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read-only, CFArray of CFDictionaries containing property key/value pairs
 
 /*!
 	@constant	kVTDecompressionPropertyKey_SupportedPixelFormatsOrderedByQuality
@@ -347,7 +347,7 @@
 		This property value is an array containing CFNumbers holding CMPixelFormatType values,
 		ordered by quality from best to worse.
 */
-VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_SupportedPixelFormatsOrderedByQuality API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read-only, CFArray[CFNumber(CMPixelFormatType)] ordered best to worst, optional
+VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_SupportedPixelFormatsOrderedByQuality API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read-only, CFArray[CFNumber(CMPixelFormatType)] ordered best to worst, optional
 
 /*!
 	@constant	kVTDecompressionPropertyKey_SupportedPixelFormatsOrderedByPerformance
@@ -358,7 +358,7 @@
 		This property value is an array containing CFNumbers holding CMPixelFormatType values,
 		ordered by speed from fast to slow.
 */
-VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_SupportedPixelFormatsOrderedByPerformance API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read-only, CFArray[CFNumber(CMPixelFormatType)] ordered fast to slow, optional
+VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_SupportedPixelFormatsOrderedByPerformance API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read-only, CFArray[CFNumber(CMPixelFormatType)] ordered fast to slow, optional
 
 /*!
 	@constant	kVTDecompressionPropertyKey_PixelFormatsWithReducedResolutionSupport
@@ -368,7 +368,7 @@
 		This is an optional property for video decoders to implement.
 		This property value is an array containing CFNumbers holding CMPixelFormatType values.
 */
-VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_PixelFormatsWithReducedResolutionSupport API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read-only, CFArray[CFNumber(CMPixelFormatType)], optional
+VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_PixelFormatsWithReducedResolutionSupport API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read-only, CFArray[CFNumber(CMPixelFormatType)], optional
 
 #pragma mark Post-decompression processing
 
@@ -383,7 +383,7 @@
 		This property is implemented by the video toolbox.
 		This property value is a CFDictionary containing properties from VTPixelTransferProperties.h.
 */
-VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_PixelTransferProperties API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // Read/Write, CFDictionary containing properties from VTPixelTransferProperties.h.
+VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_PixelTransferProperties API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/Write, CFDictionary containing properties from VTPixelTransferProperties.h.
 
 /*!
 	@constant	kVTVideoDecoderSpecification_RequiredDecoderGPURegistryID
@@ -395,7 +395,7 @@
 		This option can only be used to specify a GPU registryID corresponding to a removable GPU (eGPU).
 		If 0 is specified for the required GPU registryID, the VideoToolbox will not utilize removable GPUs for decode.
 */
-VT_EXPORT const CFStringRef kVTVideoDecoderSpecification_RequiredDecoderGPURegistryID API_AVAILABLE(macosx(10.13)); // CFNumber, Optional
+VT_EXPORT const CFStringRef kVTVideoDecoderSpecification_RequiredDecoderGPURegistryID API_AVAILABLE(macos(10.13), ios(11.3), tvos(11.3), visionos(1.0)) API_UNAVAILABLE(watchos); // CFNumber, Optional
 
 /*!
 	@constant	kVTVideoDecoderSpecification_PreferredDecoderGPURegistryID
@@ -411,7 +411,7 @@
 		The GPU registryID can be obtained from a MTLDevice using [MTLDevice registryID] or can be obtained from OpenGL or OpenCL.
 		This option can only be used to specify a GPU registryID corresponding to a removable GPU (eGPU).
 */
-VT_EXPORT const CFStringRef kVTVideoDecoderSpecification_PreferredDecoderGPURegistryID API_AVAILABLE(macosx(10.13)); // CFNumber, Optional
+VT_EXPORT const CFStringRef kVTVideoDecoderSpecification_PreferredDecoderGPURegistryID API_AVAILABLE(macos(10.13), ios(11.3), tvos(11.3), visionos(1.0)) API_UNAVAILABLE(watchos); // CFNumber, Optional
 
 /*!
 	@constant	kVTDecompressionPropertyKey_UsingGPURegistryID
@@ -421,7 +421,7 @@
 		You can query this property using VTSessionCopyProperty after building a VTDecompressionSession to find out which GPU the decoder is using.
 		If a decoder based on a built-in GPU was used it will return NULL.  If a software decoder is used, it will return NULL
 */
-VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_UsingGPURegistryID API_AVAILABLE(macosx(10.15)) ; // CFNumberRef, Read;
+VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_UsingGPURegistryID API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), visionos(1.0)) API_UNAVAILABLE(watchos); // CFNumberRef, Read
 
 /*!
 	@constant    kVTDecompressionPropertyKey_PropagatePerFrameHDRDisplayMetadata
@@ -429,7 +429,7 @@
 		This controls whether or not to propagate any per frame HDR
 		display metadata from the input compressed bitstream to the output pixel buffer.
 */
-VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_PropagatePerFrameHDRDisplayMetadata API_AVAILABLE(macosx(11.0), ios(14.0), tvos(14.0)); // Read/write, CFBoolean, Optional, default is kCFBooleanTrue
+VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_PropagatePerFrameHDRDisplayMetadata API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFBoolean, Optional, default is kCFBooleanTrue
 
 /*!
 	@constant       kVTDecompressionPropertyKey_GeneratePerFrameHDRDisplayMetadata
@@ -439,7 +439,7 @@
 		If the color space and YCbCrMatrix matches a supported HDR format such as HLG (kCMFormatDescriptionTransferFunction_ITU_R_2100_HLG)
 		the decoded frame will be analyzed and metadata will be added as an attachment to the CVPixelBuffer.
 */
-VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_GeneratePerFrameHDRDisplayMetadata API_AVAILABLE(macosx(14.0), ios(17.0)); // CFBoolean, Read/Write, Optional, kCFBooleanFalse by default
+VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_GeneratePerFrameHDRDisplayMetadata API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos); // CFBoolean, Read/Write, Optional, kCFBooleanFalse by default
 
 
 #pragma mark Multi-image decompression
@@ -457,7 +457,7 @@
         If this property is NULL, MV-HEVC shall be decoded ignoring layers other than the base layer.
         Terminology note: in multi-image decompression, a single video sample (from one CMSampleBuffer) contains a single frame (with one PTS) that is decoded to produce multiple images.
  */
-VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_RequestedMVHEVCVideoLayerIDs API_AVAILABLE(macos(14.0), ios(17.0)) API_UNAVAILABLE(tvos, watchos); // Read/write, CFArray(CFNumber), Optional
+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
 
 	
 CM_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionSession.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionSession.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionSession.h	2024-04-17 07:24:08
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionSession.h	2024-05-30 04:41:54
@@ -90,13 +90,13 @@
 		VTDecodeInfoFlags infoFlags,
 		CM_NULLABLE CVImageBufferRef imageBuffer,
 		CMTime presentationTimeStamp, 
-		CMTime presentationDuration );
+		CMTime presentationDuration ) API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0));
 
 struct VTDecompressionOutputCallbackRecord {
 	CM_NULLABLE VTDecompressionOutputCallback  decompressionOutputCallback;
 	void * CM_NULLABLE                         decompressionOutputRefCon;
-} CM_SWIFT_NONSENDABLE;
-typedef struct VTDecompressionOutputCallbackRecord VTDecompressionOutputCallbackRecord CM_SWIFT_NONSENDABLE;
+} CM_SWIFT_NONSENDABLE API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0));
+typedef struct VTDecompressionOutputCallbackRecord VTDecompressionOutputCallbackRecord CM_SWIFT_NONSENDABLE API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@function	VTDecompressionSessionCreate
@@ -127,7 +127,7 @@
 	CM_NULLABLE CFDictionaryRef								videoDecoderSpecification,
 	CM_NULLABLE CFDictionaryRef                             destinationImageBufferAttributes,
 	const VTDecompressionOutputCallbackRecord * CM_NULLABLE outputCallback,
-	CM_RETURNS_RETAINED_PARAMETER CM_NULLABLE VTDecompressionSessionRef * CM_NONNULL decompressionSessionOut) API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
+	CM_RETURNS_RETAINED_PARAMETER CM_NULLABLE VTDecompressionSessionRef * CM_NONNULL decompressionSessionOut) API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 CF_IMPLICIT_BRIDGING_ENABLED
 	
@@ -142,14 +142,14 @@
     	Calling VTDecompressionSessionInvalidate ensures a deterministic, orderly teardown.
 */
 VT_EXPORT void 
-VTDecompressionSessionInvalidate( CM_NONNULL VTDecompressionSessionRef session ) API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
+VTDecompressionSessionInvalidate( CM_NONNULL VTDecompressionSessionRef session ) API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@function VTDecompressionSessionGetTypeID
 	@abstract Returns the CFTypeID for decompression sessions.  
 */
 VT_EXPORT CFTypeID 
-VTDecompressionSessionGetTypeID(void) API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
+VTDecompressionSessionGetTypeID(void) API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@function	VTDecompressionSessionDecodeFrame
@@ -187,7 +187,7 @@
 	CM_NONNULL CMSampleBufferRef			sampleBuffer,
 	VTDecodeFrameFlags						decodeFlags, // bit 0 is enableAsynchronousDecompression
 	void * CM_NULLABLE						sourceFrameRefCon,
-	VTDecodeInfoFlags * CM_NULLABLE 		infoFlagsOut) API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
+	VTDecodeInfoFlags * CM_NULLABLE 		infoFlagsOut) API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 	
 #if __BLOCKS__
 /*!
@@ -220,7 +220,7 @@
 	VTDecodeInfoFlags infoFlags,
 	CM_NULLABLE CVImageBufferRef imageBuffer,
 	CMTime presentationTimeStamp,
-	CMTime presentationDuration ) CM_SWIFT_SENDABLE;
+	CMTime presentationDuration ) CM_SWIFT_SENDABLE API_AVAILABLE(macos(10.11), ios(9.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 	
 /*!
 	@function	VTDecompressionSessionDecodeFrameWithOutputHandler
@@ -258,7 +258,7 @@
 	CM_NONNULL CMSampleBufferRef			sampleBuffer,
 	VTDecodeFrameFlags						decodeFlags, // bit 0 is enableAsynchronousDecompression
 	VTDecodeInfoFlags * CM_NULLABLE			infoFlagsOut,
-	CM_NONNULL VTDecompressionOutputHandler	outputHandler ) API_AVAILABLE(macosx(10.11), ios(9.0), tvos(10.2));
+	CM_NONNULL VTDecompressionOutputHandler	outputHandler ) API_AVAILABLE(macos(10.11), ios(9.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 #endif // __BLOCKS__
 
 /*!
@@ -273,7 +273,7 @@
 */
 VT_EXPORT OSStatus
 VTDecompressionSessionFinishDelayedFrames(
-	CM_NONNULL VTDecompressionSessionRef		session) API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
+	CM_NONNULL VTDecompressionSessionRef		session) API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@function VTDecompressionSessionCanAcceptFormatDescription
@@ -286,7 +286,7 @@
 VT_EXPORT Boolean 
 VTDecompressionSessionCanAcceptFormatDescription( 
 	CM_NONNULL VTDecompressionSessionRef		session,
-	CM_NONNULL CMFormatDescriptionRef			newFormatDesc ) API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
+	CM_NONNULL CMFormatDescriptionRef			newFormatDesc ) API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@function VTDecompressionSessionWaitForAsynchronousFrames
@@ -297,7 +297,7 @@
 */
 VT_EXPORT OSStatus
 VTDecompressionSessionWaitForAsynchronousFrames(
-	CM_NONNULL VTDecompressionSessionRef       session) API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
+	CM_NONNULL VTDecompressionSessionRef       session) API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 CF_IMPLICIT_BRIDGING_DISABLED
 	
@@ -315,7 +315,7 @@
 VT_EXPORT OSStatus
 VTDecompressionSessionCopyBlackPixelBuffer(
    CM_NONNULL VTDecompressionSessionRef			session,
-   CM_RETURNS_RETAINED_PARAMETER CM_NULLABLE CVPixelBufferRef * CM_NONNULL pixelBufferOut ) API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
+   CM_RETURNS_RETAINED_PARAMETER CM_NULLABLE CVPixelBufferRef * CM_NONNULL pixelBufferOut ) API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 	
 /*!
 	@function VTIsHardwareDecodeSupported
@@ -328,7 +328,7 @@
 		available at all times.
  */
 VT_EXPORT Boolean
-VTIsHardwareDecodeSupported( CMVideoCodecType codecType ) API_AVAILABLE(macosx(10.13), ios(11.0), tvos(11.0));
+VTIsHardwareDecodeSupported( CMVideoCodecType codecType ) API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), visionos(1.0)) API_UNAVAILABLE(watchos);
 	
 // See VTSession.h for property access APIs on VTDecompressionSessions.
 // See VTDecompressionProperties.h for standard property keys and values for decompression sessions.
@@ -341,7 +341,7 @@
  	@discussion   This call returning true does not guarantee that decode resources will be available at all times.
  */
 VT_EXPORT Boolean
-VTIsStereoMVHEVCDecodeSupported( void ) API_AVAILABLE(macos(14.0), ios(17.0));
+VTIsStereoMVHEVCDecodeSupported( void ) API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@typedef	VTDecompressionOutputMultiImageCallback
@@ -382,7 +382,7 @@
 		VTDecodeInfoFlags infoFlags,
 		CM_NULLABLE CMTaggedBufferGroupRef taggedBufferGroup,
 		CMTime presentationTimeStamp,
-		CMTime presentationDuration );
+		CMTime presentationDuration ) API_AVAILABLE(macos(14.0), ios(17.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos);
 
 /*!
 	@function	VTDecompressionSessionSetMultiImageCallback
@@ -397,7 +397,7 @@
 VTDecompressionSessionSetMultiImageCallback(
 	CM_NONNULL VTDecompressionSessionRef				decompressionSession,
 	CM_NONNULL VTDecompressionOutputMultiImageCallback	outputMultiImageCallback,
-	void * CM_NULLABLE									outputMultiImageRefcon) API_AVAILABLE(macosx(14.0), ios(17.0)) API_UNAVAILABLE(tvos) CF_SWIFT_UNAVAILABLE("Unavailable in Swift");
+	void * CM_NULLABLE									outputMultiImageRefcon) API_AVAILABLE(macos(14.0), ios(17.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos) CF_SWIFT_UNAVAILABLE("Unavailable in Swift");
 
 #if __BLOCKS__
 /*!
@@ -438,7 +438,7 @@
 	CM_NULLABLE CVImageBufferRef imageBuffer,
 	CM_NULLABLE CMTaggedBufferGroupRef taggedBufferGroup,
 	CMTime presentationTimeStamp,
-	CMTime presentationDuration ) CM_SWIFT_SENDABLE;
+	CMTime presentationDuration ) CM_SWIFT_SENDABLE API_AVAILABLE(macos(14.0), ios(17.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos);
 
 /*!
 	@function	VTDecompressionSessionDecodeFrameWithMultiImageCapableOutputHandler
@@ -477,7 +477,7 @@
 	CM_NONNULL CMSampleBufferRef				sampleBuffer,
 	VTDecodeFrameFlags							decodeFlags, // bit 0 is enableAsynchronousDecompression
 	VTDecodeInfoFlags * CM_NULLABLE				infoFlagsOut,
-	CM_NONNULL VTDecompressionMultiImageCapableOutputHandler	multiImageCapableOutputHandler )  API_AVAILABLE(macosx(14.0), ios(17.0)) API_UNAVAILABLE(tvos) CF_REFINED_FOR_SWIFT;
+	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__
 
 #pragma pack(pop)
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTErrors.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTErrors.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTErrors.h	2024-04-17 07:14:31
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTErrors.h	2024-05-30 04:04:18
@@ -67,6 +67,8 @@
 	kVTExtensionDisabledErr 				= -17697,
     kVTVideoEncoderMVHEVCVideoLayerIDsMismatchErr = -17698,
 	kVTCouldNotOutputTaggedBufferGroupErr	= -17699,
+	kVTCouldNotFindExtensionErr				= -19510,
+	kVTExtensionConflictErr					= -19511,
 };
 
 /*!
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTFrameSilo.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTFrameSilo.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTFrameSilo.h	2024-04-17 07:10:21
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTFrameSilo.h	2024-05-30 03:35:01
@@ -43,7 +43,7 @@
 
 typedef struct CM_BRIDGED_TYPE(id) OpaqueVTFrameSilo *VTFrameSiloRef CM_SWIFT_NONSENDABLE; // a CF type, call CFRetain and CFRelease
 
-VT_EXPORT CFTypeID VTFrameSiloGetTypeID(void) API_AVAILABLE(macosx(10.10), ios(8.0), tvos(10.2));
+VT_EXPORT CFTypeID VTFrameSiloGetTypeID(void) API_AVAILABLE(macos(10.10), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 CF_IMPLICIT_BRIDGING_DISABLED
 /*!
@@ -68,7 +68,7 @@
 	CM_NULLABLE CFURLRef					fileURL,
 	CMTimeRange								timeRange, /* can be kCMTimeRangeInvalid */
 	CM_NULLABLE CFDictionaryRef				options,
-	CM_RETURNS_RETAINED_PARAMETER CM_NULLABLE VTFrameSiloRef * CM_NONNULL frameSiloOut ) API_AVAILABLE(macosx(10.10), ios(8.0), tvos(10.2));
+	CM_RETURNS_RETAINED_PARAMETER CM_NULLABLE VTFrameSiloRef * CM_NONNULL frameSiloOut ) API_AVAILABLE(macos(10.10), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 CF_IMPLICIT_BRIDGING_ENABLED
 
@@ -87,7 +87,7 @@
 VT_EXPORT OSStatus
 VTFrameSiloAddSampleBuffer( 
 	CM_NONNULL VTFrameSiloRef			silo,
-	CM_NONNULL CMSampleBufferRef		sampleBuffer ) API_AVAILABLE(macosx(10.10), ios(8.0), tvos(10.2));
+	CM_NONNULL CMSampleBufferRef		sampleBuffer ) API_AVAILABLE(macos(10.10), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@function	VTFrameSiloSetTimeRangesForNextPass
@@ -102,7 +102,7 @@
 VTFrameSiloSetTimeRangesForNextPass( 
 	CM_NONNULL VTFrameSiloRef		silo,
 	CMItemCount						timeRangeCount,
-	const CMTimeRange * CM_NONNULL	timeRangeArray ) API_AVAILABLE(macosx(10.10), ios(8.0), tvos(10.2));
+	const CMTimeRange * CM_NONNULL	timeRangeArray ) API_AVAILABLE(macos(10.10), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@function	VTFrameSiloGetProgressOfCurrentPass
@@ -115,7 +115,7 @@
 VT_EXPORT OSStatus
 VTFrameSiloGetProgressOfCurrentPass(
 	CM_NONNULL VTFrameSiloRef	silo,
-	Float32 * CM_NONNULL		progressOut ) API_AVAILABLE(macosx(10.10), ios(8.0), tvos(10.2));
+	Float32 * CM_NONNULL		progressOut ) API_AVAILABLE(macos(10.10), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@function	VTFrameSiloCallFunctionForEachSampleBuffer
@@ -139,7 +139,7 @@
 	CM_NONNULL VTFrameSiloRef	silo,
 	CMTimeRange					timeRange,
 	void * CM_NULLABLE			refcon,
-	OSStatus	(* CM_NONNULL CF_NOESCAPE callback)( void * CM_NULLABLE refcon, CM_NONNULL CMSampleBufferRef sampleBuffer ) ) API_AVAILABLE(macosx(10.10), ios(8.0), tvos(10.2)); // return nonzero to abort iteration
+	OSStatus	(* CM_NONNULL CF_NOESCAPE callback)( void * CM_NULLABLE refcon, CM_NONNULL CMSampleBufferRef sampleBuffer ) ) API_AVAILABLE(macos(10.10), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // return nonzero to abort iteration
 
 #if __BLOCKS__
 /*!
@@ -163,7 +163,7 @@
 VTFrameSiloCallBlockForEachSampleBuffer( 
 	CM_NONNULL VTFrameSiloRef			silo,
 	CMTimeRange							timeRange,
-	OSStatus (^ CM_NONNULL CF_NOESCAPE handler)( CM_NONNULL CMSampleBufferRef sampleBuffer ) ) API_AVAILABLE(macosx(10.10), ios(8.0), tvos(10.2)); // return nonzero to abort iteration
+	OSStatus (^ CM_NONNULL CF_NOESCAPE handler)( CM_NONNULL CMSampleBufferRef sampleBuffer ) ) API_AVAILABLE(macos(10.10), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // return nonzero to abort iteration
 #endif // __BLOCKS__
 
 CF_IMPLICIT_BRIDGING_DISABLED
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTHDRPerFrameMetadataGenerationSession.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTHDRPerFrameMetadataGenerationSession.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTHDRPerFrameMetadataGenerationSession.h	1970-01-01 01:00:00
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTHDRPerFrameMetadataGenerationSession.h	2024-05-30 02:39:21
@@ -0,0 +1,116 @@
+/*
+	File:  VTHDRPerFrameMetadataGenerationSession.h
+ 
+	Framework:  VideoToolbox
+ 
+	Copyright 2023 Apple Inc. All rights reserved.
+ 
+ */
+
+#ifndef VTHDRPerFrameMetadataGenerationSession_H
+#define VTHDRPerFrameMetadataGenerationSession_H
+
+#include <CoreMedia/CMBase.h>
+#include <VideoToolbox/VTBase.h>
+#include <VideoToolbox/VTErrors.h>
+#include <VideoToolbox/VTSession.h>
+#include <CoreFoundation/CoreFoundation.h>
+#include <CoreVideo/CoreVideo.h>
+
+#if defined(__cplusplus)
+extern "C"
+{
+#endif
+    
+#pragma pack(push)
+#pragma pack()
+
+CF_IMPLICIT_BRIDGING_ENABLED
+
+CM_ASSUME_NONNULL_BEGIN
+
+/*!
+	@header
+	@abstract
+		Video Toolbox HDR Metadata Generation Session
+		
+	@discussion
+		This file defines the public API for the VTHDRPerFrameMetadataGenerationSession.
+ 
+*/
+
+typedef CFStringRef VTHDRPerFrameMetadataGenerationHDRFormatType CF_EXTENSIBLE_STRING_ENUM API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos);
+
+/*!
+	@constant	kVTHDRPerFrameMetadataGenerationHDRFormatType_DolbyVision
+	@abstract		Specifies that DolbyVision data should be generated and attached for each pixel buffer.
+ */
+VT_EXPORT const VTHDRPerFrameMetadataGenerationHDRFormatType kVTHDRPerFrameMetadataGenerationHDRFormatType_DolbyVision API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos);
+
+/*!
+	@constant	kVTHDRPerFrameMetadataGenerationOptionsKey_HDRFormats
+	@abstract		Specifies an array of HDR formats that should be generated.
+	@discussion
+		This key represents a CFArrayRef. Only one key is supported ( kVTHDRPerFrameMetadataGenerationHDRFormatType_DolbyVision ).
+ */
+VT_EXPORT const CFStringRef kVTHDRPerFrameMetadataGenerationOptionsKey_HDRFormats API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos); // Write-only, Optional, CFArray
+
+
+/*!
+	@typedef	VTHDRPerFrameMetadataGenerationSessionRef
+	@abstract	A mechanism for generating HDR Per Frame Metadata and attaching that metadata to a CVPixelBuffer and the backing IOSurface.
+	@discussion
+		VTHDRPerFrameMetadataGenerationSessionRef is a CF type, so call CFRelease to release your object reference.
+*/
+typedef struct CM_BRIDGED_TYPE( id ) OpaqueVTHDRPerFrameMetadataGenerationSession*  VTHDRPerFrameMetadataGenerationSessionRef  CF_REFINED_FOR_SWIFT API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos); // a CF type, call CFRetain and CFRelease
+
+VT_EXPORT CFTypeID VTHDRPerFrameMetadataGenerationSessionGetTypeID( void ) API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), visionos(2.0)) CF_REFINED_FOR_SWIFT API_UNAVAILABLE(watchos);
+	
+// Interface for video compression session clients:
+
+/*!
+	@function	VTHDRPerFrameMetadataGenerationSessionCreate
+	@abstract	Creates a VTHDRPerFrameMetadataGenerationSession object.
+	@discussion
+		The returned VTHDRPerFrameMetadataGenerationSession object may be used to perform HDR Per Frame Metadata Generation
+		Call CFRelease to release your object reference.
+	@param framesPerSecond
+		Value must be greater than 0.0
+	@param options
+		CFDictionary may contain the key kVTHDRPerFrameMetadataGenerationOptionsHDRFormatsKey.
+*/
+VT_EXPORT OSStatus
+VTHDRPerFrameMetadataGenerationSessionCreate(
+	CM_NULLABLE CFAllocatorRef			allocator,
+	float								framesPerSecond,
+	CM_NULLABLE CFDictionaryRef			options,
+	CM_RETURNS_RETAINED_PARAMETER CM_NULLABLE VTHDRPerFrameMetadataGenerationSessionRef * CM_NONNULL hdrPerFrameMetadataGenerationSessionOut )  CF_REFINED_FOR_SWIFT API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos);
+
+/*!
+	@function	VTHDRPerFrameMetadataGenerationSessionAttachMetadata
+	@abstract	Attaches the Per Frame Metadata to the CVPixelBuffer and the backing IOSurface
+	@discussion
+			Call this to analyze and attach HDR Metadata. This call will change CVPixelBuffer attachments and backing IOSurface attachments.
+	@param hdrPerFrameMetadataGenerationSession
+	@param pixelBuffer
+	@param sceneChange
+			If this frame changes significantly in brightness from the previous frame, for example going from an indoor scene to an outdoor scene or
+			from a night scene to a daytime scene, set this to true.
+*/
+VT_EXPORT OSStatus
+VTHDRPerFrameMetadataGenerationSessionAttachMetadata(
+	VTHDRPerFrameMetadataGenerationSessionRef hdrPerFrameMetadataGenerationSession,
+	CVPixelBufferRef pixelBuffer,
+	Boolean sceneChange ) CF_REFINED_FOR_SWIFT API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), visionos(2.0))  API_UNAVAILABLE(watchos);
+
+CM_ASSUME_NONNULL_END
+
+CF_IMPLICIT_BRIDGING_DISABLED
+
+#pragma pack(pop)
+
+#if defined(__cplusplus)
+}
+#endif
+
+#endif // VTHDRPerFrameMetadataGenerationSession_H
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTMultiPassStorage.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTMultiPassStorage.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTMultiPassStorage.h	2024-04-17 07:19:22
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTMultiPassStorage.h	2024-05-30 10:44:42
@@ -37,7 +37,7 @@
 */
 typedef struct CM_BRIDGED_TYPE(id) OpaqueVTMultiPassStorage*  VTMultiPassStorageRef CM_SWIFT_NONSENDABLE; // a CF type, call CFRetain and CFRelease
 
-VT_EXPORT CFTypeID VTMultiPassStorageGetTypeID(void) API_AVAILABLE(macosx(10.10), ios(8.0), tvos(10.2));
+VT_EXPORT CFTypeID VTMultiPassStorageGetTypeID(void) API_AVAILABLE(macos(10.10), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 	
 CF_IMPLICIT_BRIDGING_DISABLED
 
@@ -63,13 +63,13 @@
 	CM_NULLABLE CFURLRef							fileURL,
 	CMTimeRange										timeRange,				   /* can be kCMTimeRangeInvalid */
 	CM_NULLABLE CFDictionaryRef						options,
-	CM_RETURNS_RETAINED_PARAMETER CM_NULLABLE VTMultiPassStorageRef * CM_NONNULL multiPassStorageOut) API_AVAILABLE(macosx(10.10), ios(8.0), tvos(10.2));
+	CM_RETURNS_RETAINED_PARAMETER CM_NULLABLE VTMultiPassStorageRef * CM_NONNULL multiPassStorageOut) API_AVAILABLE(macos(10.10), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 	
 CF_IMPLICIT_BRIDGING_ENABLED
 	
 CM_ASSUME_NONNULL_BEGIN
 
-VT_EXPORT const CFStringRef kVTMultiPassStorageCreationOption_DoNotDelete; // CFBoolean, false by default.  Provided for use when debugging video encoders.
+VT_EXPORT const CFStringRef kVTMultiPassStorageCreationOption_DoNotDelete API_AVAILABLE(macos(10.10), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // CFBoolean, false by default.  Provided for use when debugging video encoders.
 	
 CM_ASSUME_NONNULL_END
 
@@ -83,7 +83,7 @@
 */
 VT_EXPORT OSStatus 
 VTMultiPassStorageClose(
-	CM_NONNULL VTMultiPassStorageRef	multiPassStorage ) API_AVAILABLE(macosx(10.10), ios(8.0), tvos(10.2));
+	CM_NONNULL VTMultiPassStorageRef	multiPassStorage ) API_AVAILABLE(macos(10.10), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 	
 CF_IMPLICIT_BRIDGING_DISABLED
 
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTPixelRotationProperties.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTPixelRotationProperties.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTPixelRotationProperties.h	2024-04-17 07:19:22
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTPixelRotationProperties.h	2024-05-30 10:44:42
@@ -35,12 +35,12 @@
 		default is kVTRotation_0.
 */
 
-VT_EXPORT const CFStringRef kVTPixelRotationPropertyKey_Rotation API_AVAILABLE(macosx(13.0), ios(16.0), tvos(16.0), watchos(9.0));
+VT_EXPORT const CFStringRef kVTPixelRotationPropertyKey_Rotation API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), visionos(1.0)) API_UNAVAILABLE(watchos);
 
-VT_EXPORT const CFStringRef kVTRotation_0 		API_AVAILABLE(macosx(13.0), ios(16.0), tvos(16.0), watchos(9.0));
-VT_EXPORT const CFStringRef kVTRotation_CW90	API_AVAILABLE(macosx(13.0), ios(16.0), tvos(16.0), watchos(9.0));
-VT_EXPORT const CFStringRef kVTRotation_180		API_AVAILABLE(macosx(13.0), ios(16.0), tvos(16.0), watchos(9.0));
-VT_EXPORT const CFStringRef kVTRotation_CCW90	API_AVAILABLE(macosx(13.0), ios(16.0), tvos(16.0), watchos(9.0));
+VT_EXPORT const CFStringRef kVTRotation_0 		API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTRotation_CW90	API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTRotation_180		API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTRotation_CCW90	API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@constant	kVTPixelRotationPropertyKey_FlipHorizontalOrientation
@@ -51,7 +51,7 @@
 		default is false;
 */
 
-VT_EXPORT const CFStringRef kVTPixelRotationPropertyKey_FlipHorizontalOrientation API_AVAILABLE(macosx(13.0), ios(16.0), tvos(16.0), watchos(9.0));
+VT_EXPORT const CFStringRef kVTPixelRotationPropertyKey_FlipHorizontalOrientation API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@constant	kVTPixelRotationPropertyKey_FlipVerticalOrientation
@@ -62,7 +62,7 @@
 		default is false;
 */
 
-VT_EXPORT const CFStringRef kVTPixelRotationPropertyKey_FlipVerticalOrientation API_AVAILABLE(macosx(13.0), ios(16.0), tvos(16.0), watchos(9.0));
+VT_EXPORT const CFStringRef kVTPixelRotationPropertyKey_FlipVerticalOrientation API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 CM_ASSUME_NONNULL_END
 
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTPixelRotationSession.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTPixelRotationSession.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTPixelRotationSession.h	2024-04-17 07:10:21
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTPixelRotationSession.h	2024-05-30 04:41:54
@@ -36,7 +36,7 @@
 		and release your object reference.
  */
 
-typedef struct CM_BRIDGED_TYPE(id) OpaqueVTPixelRotationSession*  VTPixelRotationSessionRef CM_SWIFT_NONSENDABLE;
+typedef struct CM_BRIDGED_TYPE(id) OpaqueVTPixelRotationSession*  VTPixelRotationSessionRef CM_SWIFT_NONSENDABLE API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@function	VTPixelRotationSessionCreate
@@ -49,7 +49,7 @@
 VT_EXPORT OSStatus
 VTPixelRotationSessionCreate(
 	CM_NULLABLE CFAllocatorRef														 allocator,
-	CM_RETURNS_RETAINED_PARAMETER CM_NULLABLE VTPixelRotationSessionRef * CM_NONNULL pixelRotationSessionOut) API_AVAILABLE(macosx(13.0), ios(16.0), tvos(16.0), watchos(9.0));
+	CM_RETURNS_RETAINED_PARAMETER CM_NULLABLE VTPixelRotationSessionRef * CM_NONNULL pixelRotationSessionOut) API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@function	VTPixelRotationSessionInvalidate
@@ -62,14 +62,14 @@
     	Calling VTPixelRotationSessionInvalidate ensures a deterministic, orderly teardown.
 */
 VT_EXPORT void
-VTPixelRotationSessionInvalidate( CM_NONNULL VTPixelRotationSessionRef session ) API_AVAILABLE(macosx(13.0), ios(16.0), tvos(16.0), watchos(9.0));
+VTPixelRotationSessionInvalidate( CM_NONNULL VTPixelRotationSessionRef session ) API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@function VTPixelRotationSessionGetTypeID
 	@abstract Returns the CFTypeID for pixel rotation sessions.
 */
 VT_EXPORT CFTypeID
-VTPixelRotationSessionGetTypeID(void) API_AVAILABLE(macosx(13.0), ios(16.0), tvos(16.0), watchos(9.0));
+VTPixelRotationSessionGetTypeID(void) API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@function	VTPixelRotationSessionRotateImage
@@ -96,7 +96,7 @@
 VTPixelRotationSessionRotateImage(
 	CM_NONNULL VTPixelRotationSessionRef       session,
 	CM_NONNULL CVPixelBufferRef                sourceBuffer,
-	CM_NONNULL CVPixelBufferRef                destinationBuffer) API_AVAILABLE(macosx(13.0), ios(16.0), tvos(16.0), watchos(9.0));
+	CM_NONNULL CVPixelBufferRef                destinationBuffer) API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 // See VTSession.h for property access APIs on VTPixelRotationSession.
 
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTPixelTransferProperties.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTPixelTransferProperties.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTPixelTransferProperties.h	2024-04-17 07:14:32
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTPixelTransferProperties.h	2024-05-30 10:44:42
@@ -76,7 +76,7 @@
 		The destination image buffer's clean aperture and pixel aspect ratio attachments are not
 		taken into account, and will be overwritten.
  */
-VT_EXPORT const CFStringRef kVTPixelTransferPropertyKey_ScalingMode API_AVAILABLE(macosx(10.8), ios(9.0), tvos(10.2)); // Read/write, CFStringRef, one of kVTScalingMode_*
+VT_EXPORT const CFStringRef kVTPixelTransferPropertyKey_ScalingMode API_AVAILABLE(macos(10.8), ios(9.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFStringRef, one of kVTScalingMode_*
 
 /*
 	@constant	kVTScalingMode_Normal
@@ -88,7 +88,7 @@
 		the same way as the image with the image, and attached to the destination image buffer.
 		This is the default scaling mode.
  */
-VT_EXPORT const CFStringRef kVTScalingMode_Normal API_AVAILABLE(macosx(10.8), ios(9.0), tvos(10.2)); // Copy full width and height.  Write adjusted clean aperture and pixel aspect ratios to compensate for any change in dimensions.
+VT_EXPORT const CFStringRef kVTScalingMode_Normal API_AVAILABLE(macos(10.8), ios(9.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Copy full width and height.  Write adjusted clean aperture and pixel aspect ratios to compensate for any change in dimensions.
 
 /*
 	@constant	kVTScalingMode_CropSourceToCleanAperture
@@ -97,7 +97,7 @@
 	@discussion
 		The destination pixel aspect ratio is set on the destination image buffer.
  */
-VT_EXPORT const CFStringRef kVTScalingMode_CropSourceToCleanAperture API_AVAILABLE(macosx(10.8), ios(9.0), tvos(10.2)); // Crop to remove edge processing region; scale remainder to destination clean aperture.
+VT_EXPORT const CFStringRef kVTScalingMode_CropSourceToCleanAperture API_AVAILABLE(macos(10.8), ios(9.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Crop to remove edge processing region; scale remainder to destination clean aperture.
 
 /*
 	@constant	kVTScalingMode_Letterbox
@@ -109,7 +109,7 @@
 		If a destination pixel aspect ratio is not set, the source image's pixel aspect ratio is used.
 		The pixel aspect ratio used is set on the destination image buffer.
  */
-VT_EXPORT const CFStringRef kVTScalingMode_Letterbox API_AVAILABLE(macosx(10.8), ios(9.0), tvos(10.2)); // Preserve aspect ratio of the source, and fill remaining areas with black in to fit destination dimensions
+VT_EXPORT const CFStringRef kVTScalingMode_Letterbox API_AVAILABLE(macos(10.8), ios(9.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Preserve aspect ratio of the source, and fill remaining areas with black in to fit destination dimensions
 
 /*
 	@constant	kVTScalingMode_Trim
@@ -120,7 +120,7 @@
 		If a destination pixel aspect ratio is not set, the source image's pixel aspect ratio is used.
 		The pixel aspect ratio used is set on the destination image buffer.
  */
-VT_EXPORT const CFStringRef kVTScalingMode_Trim API_AVAILABLE(macosx(10.8), ios(9.0), tvos(10.2)); // Preserve aspect ratio of the source, and crop picture to fit destination dimensions
+VT_EXPORT const CFStringRef kVTScalingMode_Trim API_AVAILABLE(macos(10.8), ios(9.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Preserve aspect ratio of the source, and crop picture to fit destination dimensions
 
 /*!
 	@constant	kVTPixelTransferPropertyKey_DestinationCleanAperture
@@ -132,7 +132,7 @@
 		This property is ignored in kVTScalingMode_Normal.  
 		This property defaults to NULL, meaning the clean aperture is the full width and height.
 */
-VT_EXPORT const CFStringRef kVTPixelTransferPropertyKey_DestinationCleanAperture API_AVAILABLE(macosx(10.8), ios(9.0), tvos(10.2)); // Read/write, CFDictionary with same keys as used in kCVImageBufferCleanApertureKey dictionary.  Used as applicable to current kVTPixelTransferPropertyKey_ScalingMode value.
+VT_EXPORT const CFStringRef kVTPixelTransferPropertyKey_DestinationCleanAperture API_AVAILABLE(macos(10.8), ios(9.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFDictionary with same keys as used in kCVImageBufferCleanApertureKey dictionary.  Used as applicable to current kVTPixelTransferPropertyKey_ScalingMode value.
 
 /*!
 	@constant	kVTPixelTransferPropertyKey_DestinationPixelAspectRatio
@@ -145,7 +145,7 @@
 		This property defaults to NULL, meaning 1:1 (for kVTScalingMode_CropSourceToCleanAperture) 
 		or no change in pixel aspect ratio (for kVTScalingMode_Letterbox and kVTScalingMode_Trim).
 */
-VT_EXPORT const CFStringRef kVTPixelTransferPropertyKey_DestinationPixelAspectRatio API_AVAILABLE(macosx(10.8), ios(9.0), tvos(10.2)); // Read/write, CFDictionary with same keys as used in kCVImageBufferPixelAspectRatioKey dictionary.  Used as applicable to current kVTPixelTransferPropertyKey_ScalingMode value.
+VT_EXPORT const CFStringRef kVTPixelTransferPropertyKey_DestinationPixelAspectRatio API_AVAILABLE(macos(10.8), ios(9.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFDictionary with same keys as used in kCVImageBufferPixelAspectRatioKey dictionary.  Used as applicable to current kVTPixelTransferPropertyKey_ScalingMode value.
 
 // Properties for configuring up/down sampling
 
@@ -156,9 +156,9 @@
 	@discussion
 		This property is ignored if chroma downsampling is not performed.
 */
-VT_EXPORT const CFStringRef kVTPixelTransferPropertyKey_DownsamplingMode API_AVAILABLE(macosx(10.8), ios(9.0), tvos(10.2)); // Read/write, CFStringRef, one of:
-VT_EXPORT const CFStringRef kVTDownsamplingMode_Decimate API_AVAILABLE(macosx(10.8), ios(9.0), tvos(10.2)); // Default, decimate extra samples
-VT_EXPORT const CFStringRef kVTDownsamplingMode_Average API_AVAILABLE(macosx(10.8), ios(9.0), tvos(10.2)); // Average missing samples (default center)
+VT_EXPORT const CFStringRef kVTPixelTransferPropertyKey_DownsamplingMode API_AVAILABLE(macos(10.8), ios(9.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFStringRef, one of:
+VT_EXPORT const CFStringRef kVTDownsamplingMode_Decimate API_AVAILABLE(macos(10.8), ios(9.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Default, decimate extra samples
+VT_EXPORT const CFStringRef kVTDownsamplingMode_Average API_AVAILABLE(macos(10.8), ios(9.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Average missing samples (default center)
 
 // Properties for color information
 
@@ -171,7 +171,7 @@
 		matching operation may need to be performed between the source and
 		the destination.
 */
-VT_EXPORT const CFStringRef kVTPixelTransferPropertyKey_DestinationColorPrimaries API_AVAILABLE(macosx(10.8), ios(9.0), tvos(10.2)); // Read/write, CFString (see kCMFormatDescriptionExtension_ColorPrimaries), Optional
+VT_EXPORT const CFStringRef kVTPixelTransferPropertyKey_DestinationColorPrimaries API_AVAILABLE(macos(10.8), ios(9.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFString (see kCMFormatDescriptionExtension_ColorPrimaries), Optional
 
 /*!
 	@constant	kVTPixelTransferPropertyKey_DestinationTransferFunction
@@ -182,7 +182,7 @@
 		matching operation may need to be performed between the source and
 		the destination.
 */
-VT_EXPORT const CFStringRef kVTPixelTransferPropertyKey_DestinationTransferFunction API_AVAILABLE(macosx(10.8), ios(9.0), tvos(10.2)); // Read/write, CFString (see kCMFormatDescriptionExtension_TransferFunction), Optional
+VT_EXPORT const CFStringRef kVTPixelTransferPropertyKey_DestinationTransferFunction API_AVAILABLE(macos(10.8), ios(9.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFString (see kCMFormatDescriptionExtension_TransferFunction), Optional
 	
 /*!
 	@constant	kVTPixelTransferPropertyKey_DestinationICCProfile
@@ -193,7 +193,7 @@
 		matching operation may need to be performed between the source and
 		the destination.
 */
-VT_EXPORT const CFStringRef kVTPixelTransferPropertyKey_DestinationICCProfile API_AVAILABLE(macosx(10.8), ios(9.0), tvos(10.2)); // Read/write, CFData (see kCMFormatDescriptionExtension_ICCProfile), Optional
+VT_EXPORT const CFStringRef kVTPixelTransferPropertyKey_DestinationICCProfile API_AVAILABLE(macos(10.8), ios(9.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFData (see kCMFormatDescriptionExtension_ICCProfile), Optional
     
 /*!
 	@constant	kVTPixelTransferPropertyKey_DestinationYCbCrMatrix
@@ -205,7 +205,7 @@
 		matching operation may need to be performed between the source and
 		the destination.
 */
-VT_EXPORT const CFStringRef kVTPixelTransferPropertyKey_DestinationYCbCrMatrix API_AVAILABLE(macosx(10.8), ios(9.0), tvos(10.2)); // Read/write, CFString (see kCMFormatDescriptionExtension_YCbCrMatrix), Optional
+VT_EXPORT const CFStringRef kVTPixelTransferPropertyKey_DestinationYCbCrMatrix API_AVAILABLE(macos(10.8), ios(9.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFString (see kCMFormatDescriptionExtension_YCbCrMatrix), Optional
 
 /*!
     @constant   kVTPixelTransferPropertyKey_RealTime
@@ -217,7 +217,7 @@
         for transfers being performed as part of background operations.
         By default this value is NULL indicating that it is unspecified.
 */
-VT_EXPORT const CFStringRef kVTPixelTransferPropertyKey_RealTime; // Read/write, CFBoolean, default NULL
+VT_EXPORT const CFStringRef kVTPixelTransferPropertyKey_RealTime API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFBoolean, default NULL
 
 	
 CM_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTPixelTransferSession.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTPixelTransferSession.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTPixelTransferSession.h	2024-04-17 07:14:32
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTPixelTransferSession.h	2024-05-30 04:51:52
@@ -41,7 +41,7 @@
 		to tear it down and CFRelease to release your object reference.
  */
 
-typedef struct CM_BRIDGED_TYPE(id) OpaqueVTPixelTransferSession*  VTPixelTransferSessionRef CM_SWIFT_NONSENDABLE;
+typedef struct CM_BRIDGED_TYPE(id) OpaqueVTPixelTransferSession*  VTPixelTransferSessionRef CM_SWIFT_NONSENDABLE API_AVAILABLE(macos(10.8), ios(16.0), tvos(16.0), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@function	VTPixelTransferSessionCreate
@@ -57,7 +57,7 @@
 VT_EXPORT OSStatus 
 VTPixelTransferSessionCreate(
   CM_NULLABLE CFAllocatorRef							allocator,
-  CM_RETURNS_RETAINED_PARAMETER CM_NULLABLE VTPixelTransferSessionRef * CM_NONNULL pixelTransferSessionOut) VT_AVAILABLE_STARTING(10_8);
+							 CM_RETURNS_RETAINED_PARAMETER CM_NULLABLE VTPixelTransferSessionRef * CM_NONNULL pixelTransferSessionOut) API_AVAILABLE(macos(10.8), ios(16.0), tvos(16.0), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 CF_IMPLICIT_BRIDGING_ENABLED
 	
@@ -72,14 +72,14 @@
     	Calling VTPixelTransferSessionInvalidate ensures a deterministic, orderly teardown.
 */
 VT_EXPORT void 
-VTPixelTransferSessionInvalidate( CM_NONNULL VTPixelTransferSessionRef session ) VT_AVAILABLE_STARTING(10_8);
+VTPixelTransferSessionInvalidate( CM_NONNULL VTPixelTransferSessionRef session ) API_AVAILABLE(macos(10.8), ios(16.0), tvos(16.0), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@function VTPixelTransferSessionGetTypeID
 	@abstract Returns the CFTypeID for pixel transfer sessions.  
 */
 VT_EXPORT CFTypeID 
-VTPixelTransferSessionGetTypeID(void) VT_AVAILABLE_STARTING(10_8);
+VTPixelTransferSessionGetTypeID(void) API_AVAILABLE(macos(10.8), ios(16.0), tvos(16.0), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@function	VTPixelTransferSessionTransferImage
@@ -104,7 +104,8 @@
 VTPixelTransferSessionTransferImage(
   CM_NONNULL VTPixelTransferSessionRef       session,
   CM_NONNULL CVPixelBufferRef                sourceBuffer,
-  CM_NONNULL CVPixelBufferRef                destinationBuffer) VT_AVAILABLE_STARTING(10_8);
+  CM_NONNULL CVPixelBufferRef                destinationBuffer)
+  API_AVAILABLE(macos(10.8), ios(16.0), tvos(16.0), visionos(1.0)) API_UNAVAILABLE(watchos);
 	
 CF_IMPLICIT_BRIDGING_DISABLED
 
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTSession.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTSession.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTSession.h	2024-04-17 07:19:22
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTSession.h	2024-05-30 10:32:58
@@ -51,24 +51,24 @@
 VT_EXPORT OSStatus 
 VTSessionCopySupportedPropertyDictionary(
   CM_NONNULL VTSessionRef					session,
-  CM_RETURNS_RETAINED_PARAMETER CM_NULLABLE CFDictionaryRef * CM_NONNULL supportedPropertyDictionaryOut ) API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
+  CM_RETURNS_RETAINED_PARAMETER CM_NULLABLE CFDictionaryRef * CM_NONNULL supportedPropertyDictionaryOut ) API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 CF_IMPLICIT_BRIDGING_ENABLED
 
 CM_ASSUME_NONNULL_BEGIN
 	
-VT_EXPORT const CFStringRef kVTPropertyTypeKey API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // value is CFStringRef, one of the following:
-	VT_EXPORT const CFStringRef kVTPropertyType_Enumeration API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // value is one of a list of CFStrings
-	VT_EXPORT const CFStringRef kVTPropertyType_Boolean API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // value is a CFBoolean
-	VT_EXPORT const CFStringRef kVTPropertyType_Number API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // value is a CFNumber
-VT_EXPORT const CFStringRef kVTPropertyReadWriteStatusKey API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-	VT_EXPORT const CFStringRef kVTPropertyReadWriteStatus_ReadOnly API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-	VT_EXPORT const CFStringRef kVTPropertyReadWriteStatus_ReadWrite API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
-VT_EXPORT const CFStringRef kVTPropertyShouldBeSerializedKey API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // CFBoolean, false by default
-VT_EXPORT const CFStringRef kVTPropertySupportedValueMinimumKey API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // CFNumber
-VT_EXPORT const CFStringRef kVTPropertySupportedValueMaximumKey API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // CFNumber
-VT_EXPORT const CFStringRef kVTPropertySupportedValueListKey API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // CFArray of appropriate values
-VT_EXPORT const CFStringRef kVTPropertyDocumentationKey API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // a CFString for developer eyes only
+VT_EXPORT const CFStringRef kVTPropertyTypeKey API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // value is CFStringRef, one of the following:
+	VT_EXPORT const CFStringRef kVTPropertyType_Enumeration API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // value is one of a list of CFStrings
+	VT_EXPORT const CFStringRef kVTPropertyType_Boolean API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // value is a CFBoolean
+	VT_EXPORT const CFStringRef kVTPropertyType_Number API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // value is a CFNumber
+VT_EXPORT const CFStringRef kVTPropertyReadWriteStatusKey API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+	VT_EXPORT const CFStringRef kVTPropertyReadWriteStatus_ReadOnly API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+	VT_EXPORT const CFStringRef kVTPropertyReadWriteStatus_ReadWrite API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
+VT_EXPORT const CFStringRef kVTPropertyShouldBeSerializedKey API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // CFBoolean, false by default
+VT_EXPORT const CFStringRef kVTPropertySupportedValueMinimumKey API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // CFNumber
+VT_EXPORT const CFStringRef kVTPropertySupportedValueMaximumKey API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // CFNumber
+VT_EXPORT const CFStringRef kVTPropertySupportedValueListKey API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // CFArray of appropriate values
+VT_EXPORT const CFStringRef kVTPropertyDocumentationKey API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // a CFString for developer eyes only
 
 CM_ASSUME_NONNULL_END
 
@@ -82,7 +82,7 @@
 VTSessionSetProperty(
   CM_NONNULL VTSessionRef       session,
   CM_NONNULL CFStringRef        propertyKey,
-  CM_NULLABLE CFTypeRef         propertyValue ) API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
+  CM_NULLABLE CFTypeRef         propertyValue ) API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 	
 CF_IMPLICIT_BRIDGING_DISABLED
 
@@ -113,7 +113,7 @@
   CM_NONNULL VTSessionRef		session,
   CM_NONNULL CFStringRef		propertyKey,
   CM_NULLABLE CFAllocatorRef	allocator,
-  void * CM_NULLABLE			propertyValueOut ) API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
+  void * CM_NULLABLE			propertyValueOut ) API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 CF_IMPLICIT_BRIDGING_ENABLED
 /*!
@@ -125,7 +125,7 @@
 VT_EXPORT OSStatus 
 VTSessionSetProperties(
   CM_NONNULL VTSessionRef		session,
-  CM_NONNULL CFDictionaryRef	propertyDictionary ) API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
+  CM_NONNULL CFDictionaryRef	propertyDictionary ) API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 	
 CF_IMPLICIT_BRIDGING_DISABLED
 
@@ -140,7 +140,7 @@
 VTSessionCopySerializableProperties(
   CM_NONNULL VTSessionRef					session,
   CM_NULLABLE CFAllocatorRef				allocator,
-  CM_RETURNS_RETAINED_PARAMETER CM_NULLABLE CFDictionaryRef * CM_NONNULL	dictionaryOut ) API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
+  CM_RETURNS_RETAINED_PARAMETER CM_NULLABLE CFDictionaryRef * CM_NONNULL	dictionaryOut ) API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 #pragma pack(pop)
     
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTUtilities.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTUtilities.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTUtilities.h	2024-04-17 07:19:22
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTUtilities.h	2024-05-30 04:41:54
@@ -45,7 +45,7 @@
 VTCreateCGImageFromCVPixelBuffer(
 	CM_NONNULL CVPixelBufferRef			pixelBuffer,
 	CM_NULLABLE CFDictionaryRef			options,
-	CM_RETURNS_RETAINED_PARAMETER CM_NULLABLE CGImageRef * CM_NONNULL imageOut ) API_AVAILABLE(macosx(10.11), ios(9.0), tvos(10.2));
+	CM_RETURNS_RETAINED_PARAMETER CM_NULLABLE CGImageRef * CM_NONNULL imageOut ) API_AVAILABLE(macos(10.11), ios(9.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 
 
 /*!
@@ -57,8 +57,57 @@
 		This call will find and register a video decoder for the provided CMVideoCodecType if
 		such a decoder is available on the system but not registered by default.
 */
-VT_EXPORT void VTRegisterSupplementalVideoDecoderIfAvailable( CMVideoCodecType codecType ) API_AVAILABLE(macosx(11.0)) API_UNAVAILABLE(ios, watchos, tvos);
+VT_EXPORT void VTRegisterSupplementalVideoDecoderIfAvailable( CMVideoCodecType codecType ) API_AVAILABLE(macos(11.0)) API_UNAVAILABLE(ios, watchos, tvos, visionos);
 
+/*!
+	@function		VTCopyVideoDecoderExtensionProperties
+	@abstract		Returns information about the Media Extension video decoder required to decode the specified format.
+	@discussion		If a Media Extension video decoder will be used to decode the specified format, this function will return information about the Media Extension that will be used.
+	@param			formatDesc
+		The format description for the video format for which information is being requested.
+	@param			mediaExtensionPropertiesOut
+		If a Media Extension video decoder will be used to decode the specified format, this pointer will return a dictionary with a set of properties describing the extension video decoder.
+	@result			If the function succeeds and a Media Extension video decoder will be used to decode this format, the return value will be noErr. If the function succeeds but a Media Extension video decoder will not be used to decode this format, the return value will be kVTCouldNotFindExtensionErr. Otherwise, the return value will be an error code describing the failure.
+*/
+VT_EXPORT OSStatus VTCopyVideoDecoderExtensionProperties( CMFormatDescriptionRef CM_NONNULL formatDesc, CM_RETURNS_RETAINED_PARAMETER CM_NULLABLE CFDictionaryRef * CM_NONNULL mediaExtensionPropertiesOut ) API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos);
+
+/*!
+	@typedef		VTDecoderExtensionPropertiesKey
+	@abstract		A key in a Media Extension video decoder properties dictionary.
+*/
+typedef CFStringRef VTDecoderExtensionPropertiesKey CF_TYPED_ENUM API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos);
+
+CM_ASSUME_NONNULL_BEGIN
+
+/*!
+	@constant		kVTDecoderExtensionProperties_ExtensionNameKey
+	@abstract		A CFDictionary key for the localized video decoder extension name.
+	@discussion		This key points to a CFStringRef value with the localized video decoder extension name.
+*/
+VT_EXPORT VTDecoderExtensionPropertiesKey const kVTDecoderExtensionProperties_ExtensionNameKey API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos);
+
+/*!
+	@constant		kVTDecoderExtensionProperties_ContainingBundleNameKey
+	@abstract		A CFDictionary key for the extension host application localized name.
+	@discussion		This key points to a CFStringRef value with the localized name of the application hosting the video decoder extension.
+*/
+VT_EXPORT VTDecoderExtensionPropertiesKey const kVTDecoderExtensionProperties_ContainingBundleNameKey API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos);
+
+/*!
+	@constant		kVTDecoderExtensionProperties_ExtensionURLKey
+	@abstract		A CFDictionary key for the URL of the video decoder extension.
+	@discussion 	This key points to a CFURLRef value with the URL for the video decoder extension.
+*/
+VT_EXPORT VTDecoderExtensionPropertiesKey const kVTDecoderExtensionProperties_ExtensionURLKey API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos);
+
+/*!
+	@constant		kVTDecoderExtensionProperties_ContainingBundleURLKey
+	@abstract		A CFDictionary key for the URL of the extension host application.
+	@discussion		This key points to a CFURLRef value with the URL of the extension host application.
+*/
+VT_EXPORT VTDecoderExtensionPropertiesKey const kVTDecoderExtensionProperties_ContainingBundleURLKey API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos);
+
+CM_ASSUME_NONNULL_END
 
 #pragma pack(pop)
 
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTVideoEncoderList.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTVideoEncoderList.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTVideoEncoderList.h	2024-04-08 10:11:54
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTVideoEncoderList.h	2024-05-30 04:51:51
@@ -29,26 +29,26 @@
 */
 VT_EXPORT OSStatus VTCopyVideoEncoderList( 
 	CM_NULLABLE CFDictionaryRef			options,
-	CM_RETURNS_RETAINED_PARAMETER CM_NULLABLE CFArrayRef * CM_NONNULL listOfVideoEncodersOut ) API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2));
+	CM_RETURNS_RETAINED_PARAMETER CM_NULLABLE CFArrayRef * CM_NONNULL listOfVideoEncodersOut ) API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos);
 	
 CM_ASSUME_NONNULL_BEGIN
 // keys for options dictionary:
-VT_EXPORT const CFStringRef kVTVideoEncoderListOption_IncludeStandardDefinitionDVEncoders API_AVAILABLE(macosx(12.0), ios(15.0), tvos(15.0)); // optional. CFBoolean.  By default, DV encoders will not be included in the list.  If present and set to kCFBooleanTrue, DV encoders will be included.
+VT_EXPORT const CFStringRef kVTVideoEncoderListOption_IncludeStandardDefinitionDVEncoders API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), visionos(1.0)) API_UNAVAILABLE(watchos); // optional. CFBoolean.  By default, DV encoders will not be included in the list.  If present and set to kCFBooleanTrue, DV encoders will be included.
 
 // returns CFArray of CFDictionaries with following keys:
-VT_EXPORT const CFStringRef kVTVideoEncoderList_CodecType API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // CFNumber for four-char-code (eg, 'avc1')
-VT_EXPORT const CFStringRef kVTVideoEncoderList_EncoderID API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // CFString, reverse-DNS-style unique identifier for this encoder; may be passed as kVTVideoEncoderSpecification_EncoderID
-VT_EXPORT const CFStringRef kVTVideoEncoderList_CodecName API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // CFString, for display to user (eg, "H.264")
-VT_EXPORT const CFStringRef kVTVideoEncoderList_EncoderName API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // CFString, for display to user (eg, "Apple H.264")
-VT_EXPORT const CFStringRef kVTVideoEncoderList_DisplayName API_AVAILABLE(macosx(10.8), ios(8.0), tvos(10.2)); // CFString (same as CodecName if there is only one encoder for that format, otherwise same as EncoderName)
-VT_EXPORT const CFStringRef kVTVideoEncoderList_GPURegistryID API_AVAILABLE(macosx(10.14)); // optional. CFNumberRef.  If encoder is associated with a specific GPU, this corresponds to the GPU registryID as reported by [MTLDevice registryID].
-VT_EXPORT const CFStringRef kVTVideoEncoderList_SupportedSelectionProperties API_AVAILABLE(macosx(10.14), ios(13.0), tvos(13.0)); // optional. CFDictionary.  If present, represents a subset of supported properties that may be useful during encoder selection
-VT_EXPORT const CFStringRef kVTVideoEncoderList_PerformanceRating API_AVAILABLE(macosx(10.14), ios(13.0), tvos(13.0)); // optional. CFNumber.  If present, indicates a relative rating value for the encoder compared to other encoders of the same format.
-VT_EXPORT const CFStringRef kVTVideoEncoderList_QualityRating API_AVAILABLE(macosx(10.14), ios(13.0), tvos(13.0)); // optional. CFNumber.  If present, indicates a Quality Rating value for the encoder relative to other encoders of the same format.  This is a highly generalized value and different encoders may have strengths at different resolutions and bitrates.
-VT_EXPORT const CFStringRef kVTVideoEncoderList_InstanceLimit API_AVAILABLE(macosx(10.14), ios(13.0), tvos(13.0)); // optional. CFBoolean.  If present and set to kCFBooleanTrue, there is a global instance limit cap on this encoder.  Indicates that an encoder is a scarce resource which may potentially be unavailable.
-VT_EXPORT const CFStringRef kVTVideoEncoderList_IsHardwareAccelerated API_AVAILABLE(macosx(10.14), ios(13.0), tvos(13.0)); // optional. CFBoolean.  If present and set to kCFBooleanTrue, indicates that the encoder is hardware accelerated.
-VT_EXPORT const CFStringRef kVTVideoEncoderList_SupportsFrameReordering API_AVAILABLE(macosx(11.0), ios(14.0), tvos(14.0)); // optional. CFBoolean.  By default, this is assumed to be true if not present.  If present and set to kCFBooleanFalse, indicates that the encoder will not use B frames.
-VT_EXPORT const CFStringRef kVTVideoEncoderList_SupportsMultiPass API_UNAVAILABLE(macosx, ios, tvos); // optional. CFBoolean.  By default, this is assumed to be false if not present. If present and set to kCFBooleanTrue, indicates that the encoder supports multipass.
+VT_EXPORT const CFStringRef kVTVideoEncoderList_CodecType API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // CFNumber for four-char-code (eg, 'avc1')
+VT_EXPORT const CFStringRef kVTVideoEncoderList_EncoderID API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // CFString, reverse-DNS-style unique identifier for this encoder; may be passed as kVTVideoEncoderSpecification_EncoderID
+VT_EXPORT const CFStringRef kVTVideoEncoderList_CodecName API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // CFString, for display to user (eg, "H.264")
+VT_EXPORT const CFStringRef kVTVideoEncoderList_EncoderName API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // CFString, for display to user (eg, "Apple H.264")
+VT_EXPORT const CFStringRef kVTVideoEncoderList_DisplayName API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // CFString (same as CodecName if there is only one encoder for that format, otherwise same as EncoderName)
+VT_EXPORT const CFStringRef kVTVideoEncoderList_GPURegistryID API_AVAILABLE(macos(10.14), ios(13.0), tvos(13.0), visionos(1.0)) API_UNAVAILABLE(watchos); // optional. CFNumberRef.  If encoder is associated with a specific GPU, this corresponds to the GPU registryID as reported by [MTLDevice registryID].
+VT_EXPORT const CFStringRef kVTVideoEncoderList_SupportedSelectionProperties API_AVAILABLE(macos(10.14), ios(13.0), tvos(13.0), visionos(1.0)) API_UNAVAILABLE(watchos); // optional. CFDictionary.  If present, represents a subset of supported properties that may be useful during encoder selection
+VT_EXPORT const CFStringRef kVTVideoEncoderList_PerformanceRating API_AVAILABLE(macos(10.14), ios(13.0), tvos(13.0), visionos(1.0)) API_UNAVAILABLE(watchos); // optional. CFNumber.  If present, indicates a relative rating value for the encoder compared to other encoders of the same format.
+VT_EXPORT const CFStringRef kVTVideoEncoderList_QualityRating API_AVAILABLE(macos(10.14), ios(13.0), tvos(13.0), visionos(1.0)) API_UNAVAILABLE(watchos); // optional. CFNumber.  If present, indicates a Quality Rating value for the encoder relative to other encoders of the same format.  This is a highly generalized value and different encoders may have strengths at different resolutions and bitrates.
+VT_EXPORT const CFStringRef kVTVideoEncoderList_InstanceLimit API_AVAILABLE(macos(10.14), ios(13.0), tvos(13.0), visionos(1.0)) API_UNAVAILABLE(watchos); // optional. CFBoolean.  If present and set to kCFBooleanTrue, there is a global instance limit cap on this encoder.  Indicates that an encoder is a scarce resource which may potentially be unavailable.
+VT_EXPORT const CFStringRef kVTVideoEncoderList_IsHardwareAccelerated API_AVAILABLE(macos(10.14), ios(13.0), tvos(13.0), visionos(1.0)) API_UNAVAILABLE(watchos); // optional. CFBoolean.  If present and set to kCFBooleanTrue, indicates that the encoder is hardware accelerated.
+VT_EXPORT const CFStringRef kVTVideoEncoderList_SupportsFrameReordering API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), visionos(1.0)) API_UNAVAILABLE(watchos); // optional. CFBoolean.  By default, this is assumed to be true if not present.  If present and set to kCFBooleanFalse, indicates that the encoder will not use B frames.
+VT_EXPORT const CFStringRef kVTVideoEncoderList_SupportsMultiPass API_UNAVAILABLE(macos, ios, tvos, watchos, visionos); // optional. CFBoolean.  By default, this is assumed to be false if not present. If present and set to kCFBooleanTrue, indicates that the encoder supports multipass.
 CM_ASSUME_NONNULL_END
 
 /*!
@@ -63,7 +63,7 @@
 		CMVideoCodecType			codecType,
 		CM_NULLABLE CFDictionaryRef	encoderSpecification,
 		CM_RETURNS_RETAINED_PARAMETER CM_NULLABLE CFStringRef		* CM_NULLABLE encoderIDOut,
-		CM_RETURNS_RETAINED_PARAMETER CM_NULLABLE CFDictionaryRef	* CM_NULLABLE supportedPropertiesOut ) API_AVAILABLE(macosx(10.13), ios(11.0), tvos(11.0));
+		CM_RETURNS_RETAINED_PARAMETER CM_NULLABLE CFDictionaryRef	* CM_NULLABLE supportedPropertiesOut ) API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), visionos(1.0)) API_UNAVAILABLE(watchos);
 	
 #pragma pack(pop)
 
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VideoToolbox.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VideoToolbox.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VideoToolbox.h	2024-04-17 07:19:21
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VideoToolbox.h	2024-05-30 10:44:41
@@ -1,6 +1,6 @@
 /* VideoToolbox.h
 
-   Copyright (c) 2008-2022 Apple Computer, Inc.
+   Copyright (c) 2008-2023 Apple Computer, Inc.
    All rights reserved. */
 
 #include <VideoToolbox/VTCompressionProperties.h>
@@ -17,8 +17,11 @@
 #include <VideoToolbox/VTPixelTransferSession.h>
 #include <VideoToolbox/VTPixelRotationProperties.h>
 #include <VideoToolbox/VTPixelRotationSession.h>
-#if !TARGET_OS_IPHONE
+#if ( !TARGET_OS_IPHONE || TARGET_OS_MACCATALYST )
+#include <VideoToolbox/VTRAWProcessingSession.h>
+#include <VideoToolbox/VTRAWProcessingProperties.h>
 #include <VideoToolbox/VTProfessionalVideoWorkflow.h>
-#endif // !TARGET_OS_IPHONE
-
-
+#endif // ( !TARGET_OS_IPHONE || TARGET_OS_MACCATALYST )
+#if ( TARGET_OS_OSX || TARGET_OS_IOS || TARGET_OS_TV || TARGET_OS_VISION )
+#include <VideoToolbox/VTHDRPerFrameMetadataGenerationSession.h>
+#endif // ( TARGET_OS_OSX || TARGET_OS_IOS || TARGET_OS_TVOS || TARGET_OS_XR )
Clone this wiki locally