Skip to content

CoreMedia macOS xcode26.0 b1

Alex Soto edited this page Jun 9, 2025 · 1 revision

#CoreMedia.framework

diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMAttachment.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMAttachment.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMAttachment.h	2025-04-19 02:23:10
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMAttachment.h	2025-05-30 23:53:27
@@ -87,7 +87,7 @@
     @result     A CFDictionary with all buffer attachments identified by there keys. If no attachment is present, NULL is returned.  Returns NULL
 		for invalid attachment mode.
 */
-CM_EXPORT CFDictionaryRef CM_NULLABLE CMCopyDictionaryOfAttachments(CFAllocatorRef CM_NULLABLE allocator, CMAttachmentBearerRef CM_NONNULL target, CMAttachmentMode attachmentMode) API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(6.0), visionos(1.0));
+CM_EXPORT CFDictionaryRef CM_NULLABLE CMCopyDictionaryOfAttachments(CFAllocatorRef CM_NULLABLE allocator, CMAttachmentBearerRef CM_NONNULL target, CMAttachmentMode attachmentMode) CM_SWIFT_SENDING_RETAINED_RESULT API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(6.0), visionos(1.0));
 
 /*!
     @function   CMSetAttachments
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBase.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBase.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBase.h	2025-04-19 05:02:08
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBase.h	2025-05-31 21:30:22
@@ -188,16 +188,26 @@
 #define COREMEDIA_TRUE (1 && 1)
 #define COREMEDIA_FALSE (0 && 1)
 
+#ifndef COREMEDIA_EXPORTS_USE_EXPLICIT_VISIBILITY
+	#define  COREMEDIA_EXPORTS_USE_EXPLICIT_VISIBILITY 0
+#endif
+
+#if COREMEDIA_EXPORTS_USE_EXPLICIT_VISIBILITY
+	#define COREMEDIA_EXPORT_VISIBILITY __attribute__((visibility("default")))
+#else
+	#define COREMEDIA_EXPORT_VISIBILITY
+#endif
+
 #if TARGET_OS_WIN32
 	#define CM_EXPORT __declspec( dllimport ) extern
 	#define VT_EXPORT __declspec( dllimport ) extern
 	#define MT_EXPORT __declspec( dllimport ) extern
 	#define ME_EXPORT __declspec( dllimport ) extern
 #else
-	#define CM_EXPORT extern
-	#define VT_EXPORT extern
-	#define MT_EXPORT extern
-	#define ME_EXPORT extern
+	#define CM_EXPORT extern COREMEDIA_EXPORT_VISIBILITY
+	#define VT_EXPORT extern COREMEDIA_EXPORT_VISIBILITY
+	#define MT_EXPORT extern COREMEDIA_EXPORT_VISIBILITY
+	#define ME_EXPORT extern COREMEDIA_EXPORT_VISIBILITY
 #endif
 
 // These have 32-bit range in a 32-bit build, and 64-bit range in a 64-bit build.
@@ -380,11 +390,35 @@
 	#define CM_SWIFT_NONSENDABLE
 #endif // __SWIFT_ATTR_SUPPORTS_SENDABLE_DECLS
 
+#if __has_attribute(__swift_attr__) && __SWIFT_ATTR_SUPPORTS_SENDING
+	#define CM_SWIFT_SENDING __attribute__((swift_attr("sending")))
+#else
+	#define CM_SWIFT_SENDING
+#endif
+
+#define CM_SWIFT_SENDING_RETAINED_PARAMETER CM_SWIFT_SENDING CM_RETURNS_RETAINED_PARAMETER
+#define CM_SWIFT_SENDING_RELEASED_PARAMETER CM_SWIFT_SENDING CM_RELEASES_ARGUMENT
+#define CM_SWIFT_SENDING_RETAINED_RESULT CM_SWIFT_SENDING CM_RETURNS_RETAINED
+
 // Swift macros not available on Windows builds
 #if TARGET_OS_WINDOWS
 #define CF_SWIFT_UNAVAILABLE(_unused)
 #define CF_REFINED_FOR_SWIFT
 #endif // TARGET_OS_WINDOWS
+
+// CM_SWIFT_INIT_FOR_CF_TYPE creates a Swift init function for CF type that has the signature `init(referencing: Self)`
+// This "trampoline" init is used to provide convenient initializers for the type. This is a workaround for Swift
+// error - convenience initializers are not supported in extensions of CF types.
+// See https://github.com/swiftlang/swift/commit/1593c2aeeb17fda181485bd6dc33d9909c600139
+#if __SWIFT_COMPILER_VERSION
+#define CM_SWIFT_INIT_FOR_CF_TYPE(type, availability) \
+CM_INLINE CM_RETURNS_RETAINED_PARAMETER type##Ref CM_NONNULL _swiftInitFor##type(type##Ref CM_NONNULL object) \
+  CF_SWIFT_NAME(type.init(referencing:)) CF_REFINED_FOR_SWIFT availability ;\
+CM_INLINE CM_RETURNS_RETAINED_PARAMETER type##Ref CM_NONNULL _swiftInitFor##type(type##Ref CM_NONNULL object) \
+{ return (type##Ref)CFRetain(object); }
+#else
+#define CM_SWIFT_INIT_FOR_CF_TYPE(type, availability)
+#endif // __SWIFT__
 
 #pragma pack(pop)
     
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBlockBuffer.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBlockBuffer.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBlockBuffer.h	2025-04-19 03:02:28
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBlockBuffer.h	2025-05-31 00:04:28
@@ -114,6 +114,7 @@
 	deallocated. These operations are recursive, so one release could result in many follow on releses.
 */
 typedef struct CM_BRIDGED_TYPE(id) OpaqueCMBlockBuffer *CMBlockBufferRef API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(6.0), visionos(1.0)) CM_SWIFT_NONSENDABLE;
+CM_SWIFT_INIT_FOR_CF_TYPE(CMBlockBuffer, API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(6.0), visionos(1.0)))
 
 /*!
 	@typedef CMBlockBufferCustomBlockSource
@@ -174,7 +175,7 @@
 		CFAllocatorRef CM_NULLABLE structureAllocator,
 		uint32_t subBlockCapacity, 
 		CMBlockBufferFlags flags, 
-		CM_RETURNS_RETAINED_PARAMETER CMBlockBufferRef CM_NULLABLE * CM_NONNULL blockBufferOut)
+		CM_SWIFT_SENDING_RETAINED_PARAMETER CMBlockBufferRef CM_NULLABLE * CM_NONNULL blockBufferOut)
 							API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(6.0), visionos(1.0));
 
 /*!
@@ -219,7 +220,7 @@
 		size_t offsetToData, 
 		size_t dataLength,
 		CMBlockBufferFlags flags, 
-		CM_RETURNS_RETAINED_PARAMETER CMBlockBufferRef CM_NULLABLE * CM_NONNULL blockBufferOut)
+		CM_SWIFT_SENDING_RETAINED_PARAMETER CMBlockBufferRef CM_NULLABLE * CM_NONNULL blockBufferOut)
 							API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(6.0), visionos(1.0));
 
 /*!
@@ -247,7 +248,7 @@
 		size_t offsetToData,
 		size_t dataLength, 
 		CMBlockBufferFlags flags, 
-		CM_RETURNS_RETAINED_PARAMETER CMBlockBufferRef CM_NULLABLE * CM_NONNULL blockBufferOut)
+		CM_SWIFT_SENDING_RETAINED_PARAMETER CMBlockBufferRef CM_NULLABLE * CM_NONNULL blockBufferOut)
 							API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(6.0), visionos(1.0));
 
 /*!
@@ -285,7 +286,7 @@
 		size_t offsetToData, 
 		size_t dataLength, 
 		CMBlockBufferFlags flags, 
-		CM_RETURNS_RETAINED_PARAMETER CMBlockBufferRef CM_NULLABLE * CM_NONNULL blockBufferOut)
+		CM_SWIFT_SENDING_RETAINED_PARAMETER CMBlockBufferRef CM_NULLABLE * CM_NONNULL blockBufferOut)
 							API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(6.0), visionos(1.0));
 
 
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBufferQueue.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBufferQueue.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBufferQueue.h	2025-04-19 03:02:28
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBufferQueue.h	2025-05-31 21:01:33
@@ -132,6 +132,7 @@
 		
 */
 typedef struct CM_BRIDGED_TYPE(id) opaqueCMBufferQueue *CMBufferQueueRef API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(6.0), visionos(1.0)) CM_SWIFT_NONSENDABLE;
+CM_SWIFT_INIT_FOR_CF_TYPE(CMBufferQueue, API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(6.0), visionos(1.0)))
 
 /*!
 	@typedef	CMBufferRef
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescription.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescription.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescription.h	2025-04-19 02:21:28
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescription.h	2025-05-29 01:25:52
@@ -3,7 +3,7 @@
 
 	Framework:  CoreMedia
  
-	Copyright © 2005-2023 Apple Inc. All rights reserved.
+	Copyright © 2005-2025 Apple Inc. All rights reserved.
 
 */
 
@@ -59,6 +59,7 @@
 	@abstract	A reference to a CMFormatDescription, a CF object describing media of a particular type (audio, video, muxed, etc).
 */
 typedef const struct CM_BRIDGED_TYPE(id) opaqueCMFormatDescription *CMFormatDescriptionRef API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(6.0), visionos(1.0)) CM_SWIFT_SENDABLE;
+CM_SWIFT_INIT_FOR_CF_TYPE(CMFormatDescription, API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(6.0), visionos(1.0)))
 
 /*!
 	@enum CMMediaType
@@ -1001,9 +1002,13 @@
 	@constant    `kCMFormatDescriptionProjectionKind_Rectilinear`
 		Indicates rectilinear projection. Generally less than 90 degree field of view with no barrel distortion.
 	@constant    `kCMFormatDescriptionProjectionKind_Equirectangular`
- 		Indicates equirectangular projection of a 360 degree sphere to a rectangular plane, where longitude and latitude of the sphere are mapped linearly to the x,y axes of the plane.
- 	@constant    `kCMFormatDescriptionProjectionKind_HalfEquirectangular`
- 		Indicates half equirectangular projection of a 180 degree hemisphere to a rectangular plane, where longitude and latitude of the sphere are mapped linearly to the x,y axes of the plane
+		Indicates equirectangular projection of a 360 degree sphere to a rectangular plane, where longitude and latitude of the sphere are mapped linearly to the x,y axes of the plane.
+	@constant    `kCMFormatDescriptionProjectionKind_HalfEquirectangular`
+		Indicates half equirectangular projection of a 180 degree hemisphere to a rectangular plane, where longitude and latitude of the sphere are mapped linearly to the x,y axes of the plane
+	@constant    `kCMFormatDescriptionProjectionKind_ParametricImmersive`
+		Indicates a projection described mathematically by a model of camera lens calibration parameters. Parameters may be found in lens calibration metadata in kCMFormatDescriptionExtension_CameraCalibrationDataLensCollection with algorithm_kind being parametric lens
+	@constant            `kCMFormatDescriptionProjectionKind_AppleImmersiveVideo`
+		Indicates a proprietary projection used for Apple Immersive Video.
 	@discussion
 		The value is a CFString holding one of the kCMFormatDescriptionProjectionKind_* constants.
 */
@@ -1012,6 +1017,8 @@
 	CM_EXPORT const CFStringRef kCMFormatDescriptionProjectionKind_Rectilinear API_AVAILABLE(macos(15.0), ios(18.0), visionos(2.0)) API_UNAVAILABLE(tvos, watchos);
 	CM_EXPORT const CFStringRef kCMFormatDescriptionProjectionKind_Equirectangular API_AVAILABLE(macos(15.0), ios(18.0), visionos(2.0)) API_UNAVAILABLE(tvos, watchos);
 	CM_EXPORT const CFStringRef kCMFormatDescriptionProjectionKind_HalfEquirectangular API_AVAILABLE(macos(15.0), ios(18.0), visionos(2.0)) API_UNAVAILABLE(tvos, watchos);
+	CM_EXPORT const CFStringRef kCMFormatDescriptionProjectionKind_ParametricImmersive API_AVAILABLE(macos(26.0), ios(26.0), visionos(26.0)) API_UNAVAILABLE(tvos, watchos);
+	CM_EXPORT const CFStringRef kCMFormatDescriptionProjectionKind_AppleImmersiveVideo API_AVAILABLE(macos(26.0), visionos(26.0)) API_UNAVAILABLE(ios, tvos, watchos);
 
 /*!
 	@constant 	`kCMFormatDescriptionExtension_ViewPackingKind`
@@ -1026,6 +1033,114 @@
 CM_EXPORT const CFStringRef kCMFormatDescriptionExtension_ViewPackingKind API_AVAILABLE(macos(15.0), ios(18.0), visionos(2.0)) API_UNAVAILABLE(tvos, watchos);
 	CM_EXPORT const CFStringRef kCMFormatDescriptionViewPackingKind_SideBySide API_AVAILABLE(macos(15.0), ios(18.0), visionos(2.0)) API_UNAVAILABLE(tvos, watchos);
 	CM_EXPORT const CFStringRef kCMFormatDescriptionViewPackingKind_OverUnder API_AVAILABLE(macos(15.0), ios(18.0), visionos(2.0)) API_UNAVAILABLE(tvos, watchos);
+
+/*!
+	@constant kCMFormatDescriptionExtension_CameraCalibrationDataLensCollection
+	@abstract	Specifies intrinsic and extrinsic parameters for single or multiple lenses.
+	@discussion
+		The property value is an array of dictionaries describing the camera calibration data for each lens. The camera calibration data includes intrinsics and extrinics with other parameters.
+		For a stereoscopic camera system, the left and right lens signaling can be done with the kCMFormatDescriptionCameraCalibration_LensRole key and its value.
+*/
+CM_EXPORT const CFStringRef kCMFormatDescriptionExtension_CameraCalibrationDataLensCollection API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));	// CFArray of CFDictionaries
+
+/*!
+	The following keys are required in each kCMFormatDescriptionExtension_CameraCalibrationDataLensCollection dictionary.
+
+	@constant kCMFormatDescriptionCameraCalibration_LensAlgorithmKind
+	@abstract	Specifies the camera calibration methodology.
+	@discussion
+		If the algorithm kind is ParametricLens, the camera lens collection requires camera intrinsic and extrinsic parameters.
+
+	@constant kCMFormatDescriptionCameraCalibration_LensDomain
+	@abstract	Specifies the kind of lens (e.g., color).
+
+	@constant kCMFormatDescriptionCameraCalibration_LensIdentifier
+	@abstract	Specifies a unique number associated with a lens.
+
+	@constant kCMFormatDescriptionCameraCalibration_LensRole
+	@abstract	Specifies the particular use of the lens in the camera system (e.g., left or right for a stereo system).
+	@discussion
+		For a stereoscopic camera system, one lens should have the left role and another should have the right role.
+ 
+	@constant kCMFormatDescriptionCameraCalibration_LensDistortions
+	@abstract	Specifies the first and second radial distortion coefficients(k1 and k2) used to correct the distortion that appeared as curved lines for straight lines and the first and second tangential distortion coefficients(p1 and p2) used to correct the distortion caused by a lens's improper alignment of physical elements.
+	@discussion
+		The values are in a CFArray of four CFNumbers in k1, k2, p1 and p2 order.
+
+    @constant kCMFormatDescriptionCameraCalibration_LensFrameAdjustmentsPolynomialX
+    @abstract    Specifies a three element polynomial for mapping x axis UV parameters with an adjustment using the equation `x' = polynomialX[0] + polynomialX[1]*x + polynomialX[2]*x^3`.
+    @discussion
+		The values are in a CFArray of three CFNumbers(float) in the order polynomialX[0], polynomialX[1] & polynomialX[2].
+		The polynomial transform origin is at the center of the frame. The default values of elements of polynomialX[] are [0.0, 1.0, 0.0].
+
+    @constant kCMFormatDescriptionCameraCalibration_LensFrameAdjustmentsPolynomialY
+    @abstract    Specifies a three element polynomial for mapping y axis UV parameters with an adjustment using the equation `y' = polynomialY[0] + polynomialY[1]*y + polynomialY[2]*y^3`.
+    @discussion
+		The values are in a CFArray of three CFNumbers(float) in the order polynomialY[0], polynomialY[1] & polynomialY[2].
+		The polynomial transform origin is at the center of the frame. The default values of elements of polynomialY[] are [0.0, 1.0, 0.0].
+
+	@constant kCMFormatDescriptionCameraCalibration_RadialAngleLimit
+	@abstract	Specifies the outer limit of the calibration validity in degrees of angle eccentric from the optical axis.
+	@discussion
+		The value is linked to radial distortion corrections with k1 and k2.
+
+	@constant kCMFormatDescriptionCameraCalibration_IntrinsicMatrix
+	@abstract	Specifies the 3x3 camera intrinsic matrix for camera calibration.
+	@discussion
+		Camera intrinsic matrix is a CFData containing a matrix_float3x3, which is column-major. Each element is in IEEE754 native-endian 32-bit floating point. It has the following contents:
+			fx	s	cx
+			0	fy	cy
+			0	0	1
+			fx and fy are the focal length in pixels. For square pixels, they will have the same value.
+			cx and cy are the coordinates of the principal point. The origin is the upper left of the frame.
+			s is an optional skew factor.
+
+	@constant kCMFormatDescriptionCameraCalibration_IntrinsicMatrixProjectionOffset
+	@abstract	Specifies the offset of the point of perspective relative to the rectilinear projection.
+
+	@constant kCMFormatDescriptionCameraCalibration_IntrinsicMatrixReferenceDimensions
+	@abstract	Specifies the image dimensions to which the camera’s intrinsic matrix values are relative.
+	@discussion
+		Values are width and height in a CFDictionary. Dictionary keys are compatible with CGSize dictionary, namely "Width" and "Height".
+
+	@constant kCMFormatDescriptionCameraCalibration_ExtrinsicOriginSource
+	@abstract	Identifies how the origin of the camera system's extrinsics are determined.
+	@discussion
+		The 'blin' value indicates the center of transform is determined by the point mid way along the dimensions indicated by the StereoCameraSystemBaselineBox held in the StereoCameraSystemBox.
+		Each left and right lens within a stereoscopic camera system is equidistant from this point, so the 'blin' value is halved when associated with the respective left and right lenses.
+
+	@constant kCMFormatDescriptionCameraCalibration_ExtrinsicOrientationQuaternion
+		@abstract	Specifies a camera’s orientation to a world or scene coordinate system. The orientation value is a unit quaternion(ix, iy, and iz) instead of the classical 3x3 matrix.
+	@discussion
+		The values are in a CFArray of three CFNumbers in ix, iy, and iz order.
+ */
+CM_EXPORT const CFStringRef kCMFormatDescriptionCameraCalibration_LensAlgorithmKind API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));	// CFString one of
+CM_EXPORT const CFStringRef kCMFormatDescriptionCameraCalibrationLensAlgorithmKind_ParametricLens API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));
+CM_EXPORT const CFStringRef kCMFormatDescriptionCameraCalibration_LensDomain API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));	// CFString one of
+CM_EXPORT const CFStringRef kCMFormatDescriptionCameraCalibrationLensDomain_Color API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));
+CM_EXPORT const CFStringRef kCMFormatDescriptionCameraCalibration_LensIdentifier API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));	// CFNumber(int32)
+CM_EXPORT const CFStringRef kCMFormatDescriptionCameraCalibration_LensRole API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));	// CFString one of
+CM_EXPORT const CFStringRef kCMFormatDescriptionCameraCalibrationLensRole_Mono API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));
+CM_EXPORT const CFStringRef kCMFormatDescriptionCameraCalibrationLensRole_Left API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));
+CM_EXPORT const CFStringRef kCMFormatDescriptionCameraCalibrationLensRole_Right API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));
+CM_EXPORT const CFStringRef kCMFormatDescriptionCameraCalibration_LensDistortions API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));	// CFArray[CFNumber(float)], k1, k2, p1 & p2 order
+CM_EXPORT const CFStringRef kCMFormatDescriptionCameraCalibration_LensFrameAdjustmentsPolynomialX API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));	// CFArray[CFNumber(float)], polynomialX[0], polynomialX[1] & polynomialX[2] order
+CM_EXPORT const CFStringRef kCMFormatDescriptionCameraCalibration_LensFrameAdjustmentsPolynomialY API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));	// CFArray[CFNumber(float)], polynomialY[0], polynomialY[1] & polynomialY[2] order
+CM_EXPORT const CFStringRef kCMFormatDescriptionCameraCalibration_RadialAngleLimit API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));	// CFNumber(float)
+CM_EXPORT const CFStringRef kCMFormatDescriptionCameraCalibration_IntrinsicMatrix API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));	// CFData(matrix_float3x3)
+CM_EXPORT const CFStringRef kCMFormatDescriptionCameraCalibration_IntrinsicMatrixProjectionOffset API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));	// CFNumber(float)
+CM_EXPORT const CFStringRef kCMFormatDescriptionCameraCalibration_IntrinsicMatrixReferenceDimensions API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));	// CGSize dictionary
+CM_EXPORT const CFStringRef kCMFormatDescriptionCameraCalibration_ExtrinsicOriginSource API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));	// CFString one of
+CM_EXPORT const CFStringRef kCMFormatDescriptionCameraCalibrationExtrinsicOriginSource_StereoCameraSystemBaseline API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));
+CM_EXPORT const CFStringRef kCMFormatDescriptionCameraCalibration_ExtrinsicOrientationQuaternion API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));	// CFArray[CFNumber(float)], ix, iy & iz order
+
+/*!
+    @constant kCMFormatDescriptionExtension_ConvertedFromExternalSphericalTags
+	@abstract	Indicates that the image description contains projected media data converted from an external format
+	@discussion
+		This format description extension is included if boxes containing external stereoscopic or spherical projection information were parsed.
+*/
+CM_EXPORT const CFStringRef kCMFormatDescriptionExtension_ConvertedFromExternalSphericalTags API_AVAILABLE(macos(26.0), ios(26.0), visionos(26.0)) API_UNAVAILABLE(tvos, watchos);	// CFBoolean
 
 CM_ASSUME_NONNULL_END
 
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescriptionBridge.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescriptionBridge.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescriptionBridge.h	2025-04-19 02:47:58
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescriptionBridge.h	2025-05-31 21:01:33
@@ -19,6 +19,7 @@
 				There are also functions for converting between big-endian buffers and the host-endian layouts exposed in QuickTime APIs.
 */
 
+#include <CoreMedia/CMBase.h>
 #include <CoreMedia/CMFormatDescription.h>
 #include <CoreMedia/CMBlockBuffer.h>
 
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMMetadata.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMMetadata.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMMetadata.h	2025-04-19 04:17:42
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMMetadata.h	2025-05-31 21:01:11
@@ -3,7 +3,7 @@
 	
 	Framework:  CoreMedia
  
-    Copyright © 2013-2023 Apple Inc. All rights reserved.
+    Copyright © 2013-2025 Apple Inc. All rights reserved.
  
 */
 
@@ -200,7 +200,45 @@
 */
 CM_EXPORT const CFStringRef kCMMetadataIdentifier_QuickTimeMetadataSceneIlluminance
 								API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), watchos(11.0), visionos(2.0));
-	
+
+/*!
+	@const kCMMetadataIdentifier_QuickTimeMetadataSpatialAudioMix
+		Data associated with a Spatial Audio capture that contains an analysis of a First Order Ambisonics audio stream which is used for playback.
+*/
+CM_EXPORT const CFStringRef kCMMetadataIdentifier_QuickTimeMetadataSpatialAudioMix
+								API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));
+
+/*!
+       @const kCMMetadataIdentifier_QuickTimeMetadataDisplayMaskRectangleMono
+               Display mask rectangle for monoscopic video
+               Expected data type is kCMMetadataBaseDataType_RasterRectangleValue.
+*/
+CM_EXPORT const CFStringRef kCMMetadataIdentifier_QuickTimeMetadataDisplayMaskRectangleMono
+                                                               API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));
+
+/*!
+       @const kCMMetadataIdentifier_QuickTimeMetadataDisplayMaskRectangleStereoLeft
+               Display mask rectangle for stereoscopic video's left eye view
+               Expected data type is kCMMetadataBaseDataType_RasterRectangleValue or kCMMetadataBaseDataType_ExtendedRasterRectangleValue.
+*/
+CM_EXPORT const CFStringRef kCMMetadataIdentifier_QuickTimeMetadataDisplayMaskRectangleStereoLeft
+                                                               API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));
+
+/*!
+       @const kCMMetadataIdentifier_QuickTimeMetadataDisplayMaskRectangleStereoRight
+               Display mask rectangle for stereoscopic video's right eye view
+               Expected data type is kCMMetadataBaseDataType_RasterRectangleValue or kCMMetadataBaseDataType_ExtendedRasterRectangleValue.
+*/
+CM_EXPORT const CFStringRef kCMMetadataIdentifier_QuickTimeMetadataDisplayMaskRectangleStereoRight
+                                                               API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));
+
+/*!
+	   @const kCMMetadataIdentifier_QuickTimeMetadataPresentationImmersiveMedia
+			   Presentation data associated with Apple Immersive Video's video frames. Data is a JSON-encoding of ImmersiveMediaSupport framework's PresentationDescriptor object.
+			   Expected data type is kCMMetadataBaseDataType_RawData.
+*/
+CM_EXPORT const CFStringRef kCMMetadataIdentifier_QuickTimeMetadataPresentationImmersiveMedia API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));
+
 CM_ASSUME_NONNULL_END
 
 CF_IMPLICIT_BRIDGING_DISABLED
@@ -381,6 +419,12 @@
 		UTF-8 encoded JSON data.
 	@const kCMMetadataBaseDataType_PerspectiveTransformF64
 		A 3x3 matrix of 64-bit big endian floating point numbers stored in row-major order that specify a perspective transform.
+	@const kCMMetadataBaseDataType_RasterRectangleValue
+		Consists of six 16-bit big endian unsigned integer values of RasterRectangleValue in the following order: raster width, raster height, left, width, top, height.
+		Rectangle origin and dimension are normalized to raster rectangle coordinates to be pixel accurate but still retain the relative semantics when scaled.
+	@const kCMMetadataBaseDataType_ExtendedRasterRectangleValue
+		Consists of at least six 16-bit big endian unsigned integer values for RasterRectangleValue in the same order as kCMMetadataBaseDataType_RasterRectangleValue and then two 4-bit values for the number of left and right edge adjustment points. If edge adustment points are 2 or more, points would be pairs of 16-bit big endian unsigned integers alternating between x and y with left edge points first and right edge points afterwards.
+        Rectangle origin and dimension are normalized to raster rectangle coordinates to be pixel accurate but still retain the relative semantics when scaled.
 */
 CM_ASSUME_NONNULL_BEGIN
 
@@ -434,6 +478,10 @@
 								API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(6.0), visionos(1.0));
 CM_EXPORT const CFStringRef kCMMetadataBaseDataType_PerspectiveTransformF64
 								API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0), visionos(1.0));
+CM_EXPORT const CFStringRef kCMMetadataBaseDataType_RasterRectangleValue
+								API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));
+CM_EXPORT const CFStringRef kCMMetadataBaseDataType_ExtendedRasterRectangleValue
+								API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));
 
 /*!
 	@const kCMMetadataDataType_Location_ISO6709
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSampleBuffer.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSampleBuffer.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSampleBuffer.h	2025-04-19 01:54:34
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSampleBuffer.h	2025-05-31 21:01:33
@@ -130,6 +130,7 @@
 		
 */
 typedef struct CM_BRIDGED_TYPE(id) opaqueCMSampleBuffer *CMSampleBufferRef API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(6.0), visionos(1.0)) CM_SWIFT_NONSENDABLE;
+CM_SWIFT_INIT_FOR_CF_TYPE(CMSampleBuffer, API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(6.0), visionos(1.0)))
 
 /*!
 	@typedef	CMSampleTimingInfo
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSimpleQueue.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSimpleQueue.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSimpleQueue.h	2025-04-19 04:17:42
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSimpleQueue.h	2025-05-24 01:21:26
@@ -76,6 +76,7 @@
 		
 */
 typedef struct CM_BRIDGED_TYPE(id) opaqueCMSimpleQueue *CMSimpleQueueRef API_AVAILABLE(macos(10.7), ios(5.0), tvos(9.0), watchos(6.0), visionos(1.0)) CM_SWIFT_NONSENDABLE;
+CM_SWIFT_INIT_FOR_CF_TYPE(CMSimpleQueue, API_AVAILABLE(macos(10.7), ios(5.0), tvos(9.0), watchos(6.0), visionos(1.0)))
 
 //=============================================================================
 
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSync.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSync.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSync.h	2025-04-19 02:21:28
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSync.h	2025-05-24 01:34:23
@@ -38,6 +38,7 @@
 */
 
 typedef struct CM_BRIDGED_TYPE(id) OpaqueCMClock* CMClockRef API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(6.0), visionos(1.0)) CM_SWIFT_SENDABLE; // a CF type; use CFRetain and CFRelease
+CM_SWIFT_INIT_FOR_CF_TYPE(CMClock, API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(6.0), visionos(1.0)))
 
 /*!
 	@typedef	CMTimebase
@@ -58,6 +59,7 @@
 */
 
 typedef struct CM_BRIDGED_TYPE(id) OpaqueCMTimebase* CMTimebaseRef API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(6.0), visionos(1.0)) CM_SWIFT_SENDABLE; // a CF type; use CFRetain and CFRelease
+CM_SWIFT_INIT_FOR_CF_TYPE(CMTimebase, API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(6.0), visionos(1.0)))
 
 typedef CM_BRIDGED_TYPE(id) CFTypeRef CMClockOrTimebaseRef API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(6.0), visionos(1.0)) CM_SWIFT_SENDABLE; // used in argument lists and function results to indicate that either may be passed
 
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMTag.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMTag.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMTag.h	2025-04-19 02:23:10
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMTag.h	2025-05-31 00:04:28
@@ -3,7 +3,7 @@
 	
 	Framework:  CoreMedia
  
-	Copyright © 2023 Apple Inc. All rights reserved.
+	Copyright © 2023-2024 Apple Inc. All rights reserved.
  
 */
 
@@ -242,7 +242,8 @@
 	@constant kCMProjectionType_Rectangular There is no projection.This is a traditional 2D texture. Default if no projection type tag is signaled.
 	@constant kCMProjectionType_Equirectangular The projection is a 360 degree equirectangular projection.
 	@constant kCMProjectionType_HalfEquirectangular The projection is a 180 degree equirectangular projection.
-	@constant kCMProjectionType_Fisheye The projection is a fisheye projection.
+	@constant kCMProjectionType_Fisheye This projection used by Apple Immdersive Video (AIV) generated content describes, and is fundamentally a fisheye lens, but requires an AIME file to provide those description details.  Please only use this projection when working with AIV content.
+	@constant kCMProjectionType_ParametricImmersive The projection is fisheye-like, but with accompanying lens parameters in the vexu data.  Use this projection for generic fisheye created content.
  */
 typedef CF_ENUM(uint64_t, CMProjectionType)
 {
@@ -250,6 +251,7 @@
 	kCMProjectionType_Equirectangular 		= 'equi',
 	kCMProjectionType_HalfEquirectangular 	= 'hequ',
 	kCMProjectionType_Fisheye 				= 'fish',
+	kCMProjectionType_ParametricImmersive	API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0)) = 'prim',
 } API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0), visionos(1.0));
 
 /*!
@@ -277,11 +279,19 @@
  */
 CM_EXPORT const CMTag kCMTagProjectionTypeFisheye CF_REFINED_FOR_SWIFT API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0), visionos(1.0));
 
+/*!
+	@constant kCMTagProjectionTypeParametricImmersive
+	@abstract A CMTag of category kCMTagCategory_ProjectionType and the value kCMTagProjectionType_ParametricImmersive (OSType).
+ */
+CM_EXPORT const CMTag kCMTagProjectionTypeParametricImmersive CF_REFINED_FOR_SWIFT API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));
+
+
+
 #pragma mark - PackingType data types and convenience tags
 
 /*!
 	@abstract Constants used with kCMTagCategory_PackingType to signal the nature of any packing applied in a buffer or channel.
-	@discussion A video packing can be one of several types including frame-packing for stereo views or texture atlasing. A CMTag having a CMTagCategory of kCMTagCategory_ProjectionType has a value that is an OSType indicating the kind of packing using a kCMPackingType_* constant.  Examples of frame-packing include side-by-side and over-under packing, There may be related CMTags if a kind of packing requires additional parameters. The requirements will be documented with the specific kind of packing.
+	@discussion A video packing can be one of several types including frame-packing for stereo views or texture atlasing. A CMTag having a CMTagCategory of kCMTagCategory_PackingType has a value that is an OSType indicating the kind of packing using a kCMPackingType_* constant.  Examples of frame-packing include side-by-side and over-under packing, There may be related CMTags if a kind of packing requires additional parameters. The requirements will be documented with the specific kind of packing.
 	@constant kCMPackingType_None There is no packing. This is a traditional 2D texture. For this case no packing tag needs to be used.
 	@constant kCMPackingType_SideBySide The packing uses a horizontal side-by-side packing of two views. By default, the left stereo eye view is to the left of the right stereo eye view. If the view order is reversed, indicated by kCMTagCategory_StereoViewInterpretation/kCMStereoViewInterpretation_StereoOrderReversed, then the right view is to the left of the left stereo view.
 	@constant kCMPackingType_OverUnder The packing uses a vertical over-under (or top-and-bottom) packing of two views. By default, the left stereo eye view is above the right stereo eye view. If the view order is reversed, indicated by kCMTagCategory_StereoViewInterpretation/kCMStereoViewInterpretation_StereoOrderReversed, then the right view is above the left stereo view.
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMTaggedBufferGroup.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMTaggedBufferGroup.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMTaggedBufferGroup.h	2025-04-19 01:54:34
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMTaggedBufferGroup.h	2025-05-31 21:30:22
@@ -3,7 +3,7 @@
 	
 	Framework:  CoreMedia
  
-	Copyright © 2023 Apple Inc. All rights reserved.
+	Copyright © 2023-2025 Apple Inc. All rights reserved.
  
 */
 
@@ -198,6 +198,32 @@
 	CMTaggedBufferGroupRef CM_NONNULL taggedBufferGroup,
 	CM_RETURNS_RETAINED_PARAMETER CMTaggedBufferGroupFormatDescriptionRef CM_NULLABLE * CM_NONNULL formatDescriptionOut) CF_REFINED_FOR_SWIFT API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0), visionos(1.0));
 
+/*!
+	@function	CMTaggedBufferGroupFormatDescriptionCreateForTaggedBufferGroupWithExtensions
+	@abstract	Creates a format description for a CMTaggedBufferGroup with extensions.
+	@param	allocator
+		CFAllocator to be used when creating the CMFormatDescription. Pass kCFAllocatorDefault to use the default allocator.
+	@param	taggedBufferGroup
+		The tagged buffer group for which we are creating the format description.
+	@param	extensions
+		Dictionary of extension key/value pairs.  Keys are always CFStrings. Values are always property list objects (ie. CFData, CFString, CFArray, CFDictionary, CFDate, CFBoolean, or CFNumber). Can be NULL.
+	@param	formatDescriptionOut
+		Returned newly-created tagged buffer group CMFormatDescription
+	@discussion
+		The returned CMTaggedBufferGroupFormatDescription could be used to create a CMSampleBuffer
+		wrapping the CMTaggedBufferGroup using CMSampleBufferCreateForTaggedBufferGroup.
+		If you are going to call CMSampleBufferCreateForTaggedBufferGroup on a series of matching
+		CMTaggedBufferGroups, it is more efficient to create the CMTaggedBufferGroupFormatDescription
+		once and use it for all of the CMSampleBuffers.
+		The caller owns the returned CMFormatDescription, and must release it when done with it.
+		All input parameters are copied (the extensions are deep-copied).  The caller can deallocate them or re-use them after making this call.
+*/
+CM_EXPORT
+OSStatus CMTaggedBufferGroupFormatDescriptionCreateForTaggedBufferGroupWithExtensions(
+	CFAllocatorRef CM_NULLABLE allocator,
+	CMTaggedBufferGroupRef CM_NONNULL taggedBufferGroup,
+	CFDictionaryRef CM_NULLABLE extensions,
+	CM_RETURNS_RETAINED_PARAMETER CMTaggedBufferGroupFormatDescriptionRef CM_NULLABLE * CM_NONNULL formatDescriptionOut) CF_REFINED_FOR_SWIFT API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));
 /*!
 	@function	CMTaggedBufferGroupFormatDescriptionMatchesTaggedBufferGroup
 	@abstract	Checks to see if a given format description matches a tagged buffer group.
Clone this wiki locally