Skip to content

CoreVideo macOS xcode13.0 beta1

Manuel de la Pena edited this page Jun 21, 2021 · 3 revisions

#CoreVideo.framework https://github.com/xamarin/xamarin-macios/pull/11997

diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVBase.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVBase.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVBase.h	2021-03-16 13:57:45.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVBase.h	2021-06-02 11:05:21.000000000 -0400
@@ -19,8 +19,11 @@
 #include <TargetConditionals.h>
 #include <Availability.h>
 #include <AvailabilityMacros.h>
+#include <stdint.h>
 
-
+#if TARGET_OS_WIN32
+#pragma warning (disable: 4068)		// ignore unknown pragmas
+#endif
 
 
 
@@ -32,9 +35,11 @@
 #define COREVIDEO_TRUE (1 && 1)
 #define COREVIDEO_FALSE (0 && 1)
 
-
+#if TARGET_OS_WIN32
+	#define COREVIDEO_SUPPORTS_DIRECT3D 	COREVIDEO_TRUE
+#else
 	#define COREVIDEO_SUPPORTS_DIRECT3D 	COREVIDEO_FALSE
-
+#endif
 
 #if TARGET_OS_MACCATALYST
 #define COREVIDEO_SUPPORTS_OPENGL 		COREVIDEO_TRUE
@@ -53,7 +58,7 @@
 #endif
 #endif
 
-#if ((TARGET_OS_MAC && ! TARGET_OS_IPHONE) || (0))
+#if ((TARGET_OS_MAC && ! TARGET_OS_IPHONE) || (TARGET_OS_WIN32))
 	#define COREVIDEO_SUPPORTS_COLORSPACE 	COREVIDEO_TRUE
 #else
 	#define COREVIDEO_SUPPORTS_COLORSPACE 	COREVIDEO_FALSE
@@ -125,6 +130,12 @@
 	#define COREVIDEO_DECLARE_NULLABILITY COREVIDEO_FALSE
 #endif
 
+#if (TARGET_OS_IPHONE || TARGET_OS_MAC) && defined(__has_feature) && __has_feature(attribute_cf_returns_retained)
+    #define CV_RETURNS_RETAINED CF_RETURNS_RETAINED
+#else
+    #define CV_RETURNS_RETAINED 
+#endif
+
 #if (TARGET_OS_IPHONE || TARGET_OS_MAC) && defined(__has_feature) && __has_feature(attribute_cf_returns_on_parameters)
 #define CV_RETURNS_RETAINED_PARAMETER		CF_RETURNS_RETAINED
 #else
@@ -154,9 +165,17 @@
 	
 #define CV_INTERNAL __attribute__((visibility("hidden")))
 
-
+#if TARGET_OS_WIN32 && defined(CV_BUILDING_CV) && defined(__cplusplus)
+#define CV_EXPORT extern "C" __declspec(dllexport) 
+#elif TARGET_OS_WIN32 && defined(CV_BUILDING_CV) && !defined(__cplusplus)
+#define CV_EXPORT extern __declspec(dllexport) 
+#elif TARGET_OS_WIN32 && defined(__cplusplus)
+#define CV_EXPORT extern "C" __declspec(dllimport) 
+#elif TARGET_OS_WIN32
+#define CV_EXPORT extern __declspec(dllimport) 
+#else
 #define CV_EXPORT __attribute__((visibility("default"))) CF_EXPORT 
-
+#endif
 
 #define CV_INLINE CF_INLINE
 
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVImageBuffer.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVImageBuffer.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVImageBuffer.h	2021-03-16 08:46:18.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVImageBuffer.h	2021-06-02 12:42:58.000000000 -0400
@@ -22,7 +22,7 @@
 #include <AvailabilityMacros.h>
 
 // For legacy reasons CVImageBuffer.h includes CoreGraphics.h and ApplicationServices.h
-#if TARGET_OS_IPHONE || 0
+#if TARGET_OS_IPHONE || TARGET_OS_WIN32
 #include <CoreGraphics/CoreGraphics.h>
 #else
 #include <ApplicationServices/ApplicationServices.h>
@@ -219,6 +219,19 @@
 	// CFData (4 bytes) containing big-endian data matching payload of Content Light Level Information SEI message
 CV_EXPORT const CFStringRef CV_NONNULL kCVImageBufferContentLightLevelInfoKey __OSX_AVAILABLE_STARTING(__MAC_10_13,__IPHONE_11_0);
 
+// CFData (8 bytes) containing big-endian data matching payload of Ambient Viewing Environment SEI message
+CV_EXPORT const CFStringRef CV_NONNULL kCVImageBufferAmbientViewingEnvironmentKey __OSX_AVAILABLE_STARTING(__MAC_10_15,__IPHONE_13_0);
+
+/*!
+	@constant    kCVImageBufferRegionOfInterestKey
+	@abstract
+		Specifies region of interest that image statistics cover. This value should be a CGRect dictionary created by CGRectCreateDictionaryRepresentation(). The origin in the CGRect represents the x,y coordinate within the CVPixelBuffer where region of interest is located.
+	@discussion
+		
+*/
+CV_EXPORT const CFStringRef CV_NONNULL kCVImageBufferRegionOfInterestKey           API_AVAILABLE(macosx(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+
+
 #if defined(__cplusplus)
 }
 #endif
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVPixelBuffer.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVPixelBuffer.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVPixelBuffer.h	2021-03-16 13:57:45.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVPixelBuffer.h	2021-06-02 05:34:16.000000000 -0400
@@ -2,12 +2,12 @@
  *  CVPixelBuffer.h
  *  CoreVideo
  *
- *  Copyright (c) 2004-2015 Apple Inc. All rights reserved.
+ *  Copyright (c) 2004-2021 Apple Inc. All rights reserved.
  *
  */
  
   /*! @header CVPixelBuffer.h
-	@copyright 2004-2015 Apple Inc. All rights reserved.
+	@copyright 2004-2021 Apple Inc. All rights reserved.
 	@availability Mac OS X 10.4 or later, and iOS 4.0 or later
     @discussion CVPixelBuffers are CVImageBuffers that hold the pixels in main memory
 		   
@@ -86,6 +86,8 @@
   kCVPixelFormatType_TwoComponent8  = '2C08',     /* 8 bit two component, black is zero */
   kCVPixelFormatType_30RGBLEPackedWideGamut = 'w30r', /* little-endian RGB101010, 2 MSB are zero, wide-gamut (384-895) */
   kCVPixelFormatType_ARGB2101010LEPacked = 'l10r',     /* little-endian ARGB2101010 full-range ARGB */
+  kCVPixelFormatType_40ARGBLEWideGamut      = 'w40a', /* little-endian ARGB10101010, each 10 bits in the MSBs of 16bits, wide-gamut (384-895, including alpha) */
+  kCVPixelFormatType_40ARGBLEWideGamutPremultiplied = 'w40m', /* little-endian ARGB10101010, each 10 bits in the MSBs of 16bits, wide-gamut (384-895, including alpha). Alpha premultiplied */
   kCVPixelFormatType_OneComponent10      = 'L010',     /* 10 bit little-endian one component, stored as 10 MSBs of 16 bits, black is zero */
   kCVPixelFormatType_OneComponent12      = 'L012',     /* 12 bit little-endian one component, stored as 12 MSBs of 16 bits, black is zero */
   kCVPixelFormatType_OneComponent16      = 'L016',     /* 16 bit little-endian one component, black is zero */
@@ -116,6 +118,36 @@
 };
 
 	
+/*
+	Lossless-Compressed Pixel Formats
+	
+	The following pixel formats can be used to reduce the memory bandwidth involved in large-scale pixel data flow, which can have benefits for battery life and thermal efficiency.
+	They work by dividing pixel buffers into fixed-width, fixed-height, fixed-byte-size blocks.  Hardware units (video codecs, GPU, ISP, etc.) attempt to write a compressed encoding for each block using a lossless algorithm.  If a block of pixels is successfully encoded using fewer bytes than the uncompressed pixel data, the hardware unit does not need to write as many bytes for that pixel block.  If the encoding is unsuccessful, the uncompressed pixel data is written, filling the whole pixel block.  Each compressed pixel buffer has a separate area of metadata recording the encoding choices for each pixel block.
+	
+	Padding bits are eliminated, so for example, 10-bit-per-component lossless-compressed pixel buffers are slightly smaller than their uncompressed equivalents.  For pixel formats with no padding, the lossless-compressed pixel buffers are slightly larger due to the metadata.
+	
+	IMPORTANT CAVEATS:
+	Some devices do not support these pixel formats at all. 
+	Before using one of these pixel formats, call CVIsCompressedPixelFormatAvailable() to check that it is available on the current device.
+	On different devices, the concrete details of these formats may be different.
+	On different devices, the degree and details of support by hardware units (video codecs, GPU, ISP, etc.) may be different.
+	Do not ship code that reads the contents of lossless-compressed pixel buffers directly with the CPU, or which saves or transfers it to other devices, as this code will break with future hardware.
+	The bandwidth benefits of these formats are generally outweighed by the cost of buffer copies to convert to uncompressed pixel formats, so if you find that you need to perform a buffer copy to covert for CPU usage, it's likely that you would have been better served by using the equivalent uncompressed pixel formats in the first place.
+*/
+#if COREVIDEO_USE_DERIVED_ENUMS_FOR_CONSTANTS
+enum : OSType
+#else
+enum
+#endif
+{
+	kCVPixelFormatType_Lossless_32BGRA                               = '&BGA', /* Lossless-compressed form of kCVPixelFormatType_32BGRA. */
+	
+	// Lossless-compressed Bi-planar YCbCr pixel format types
+	kCVPixelFormatType_Lossless_420YpCbCr8BiPlanarVideoRange         = '&8v0', /* Lossless-compressed form of kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange.  No CVPlanarPixelBufferInfo struct. */
+	kCVPixelFormatType_Lossless_420YpCbCr8BiPlanarFullRange          = '&8f0', /* Lossless-compressed form of kCVPixelFormatType_420YpCbCr8BiPlanarFullRange.  No CVPlanarPixelBufferInfo struct. */
+	kCVPixelFormatType_Lossless_420YpCbCr10PackedBiPlanarVideoRange  = '&xv0', /* Lossless-compressed-packed form of kCVPixelFormatType_420YpCbCr10BiPlanarVideoRange.  No CVPlanarPixelBufferInfo struct. Format is compressed-packed with no padding bits between pixels. */
+};
+
 /*!
 	@enum Pixel Buffer Locking Flags
 	@discussion Flags to pass to CVPixelBufferLockBaseAddress() / CVPixelBufferUnlockBaseAddress()
@@ -181,7 +213,7 @@
     @abstract   Buffer attachment key for code indicating Bayer pattern (sensel arrangement).
     @discussion Associated attachment is a CFNumber of type kCFNumberSInt32Type.  The value follows the semantics of the ProRes RAW bayer_pattern bitstream syntax element, namely 0, 1, 2, or 3, where 0 means the top-left sensel of the frame is red-filtered ("RGGB"); 1 means the top-left sensel of the frame is green-filtered, with the top row alternating between green- and red-filtered sensels ("GRBG"); 2 means the top-left sensel of the frame is green- filtered, with the top row alternating between green- and blue-filtered sensels ("GBRG"); and 3 means the top-left sensel of the frame is blue-filtered ("BGGR").  This attachment applies only to buffers with VersatileBayer formats.
 */
-CV_EXPORT const CFStringRef CV_NONNULL kCVPixelBufferVersatileBayerKey_BayerPattern API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(macosx) API_UNAVAILABLE(macCatalyst) __TVOS_PROHIBITED __WATCHOS_PROHIBITED;
+CV_EXPORT const CFStringRef CV_NONNULL kCVPixelBufferVersatileBayerKey_BayerPattern API_AVAILABLE(ios(14.0), macosx(11.0)) __TVOS_PROHIBITED __WATCHOS_PROHIBITED;
 
 enum {
 	kCVVersatileBayer_BayerPattern_RGGB = 0,
@@ -195,63 +227,63 @@
     @abstract   Buffer attachment key for siting offsets, relative to pixel center, of individual sensels/components constituting each pixel.
     @discussion Associated attachment is CFData containing an array of 8 32-bit floats.  The eight CFData array elements specify, in order, the following sensel/component offsets from pixel center: red horizontal offset, red vertical offset, green horizontal offset, green vertical offset, blue horizontal offset, blue vertical offset, alpha horizontal offset, and alpha vertical offset.  A positive offset value indicates that the sensel/component lies to the right of or below the center of its pixel, while a negative value indicates that the sensel/component lies to the left of or above the center of its pixel.  Horizontal and vertical offset magnitudes are respectively in terms of the spacing between horizontally- and vertically-adjacent pixel centers.  This attachment applies only to buffers with the bp64 format, and is optional for those buffers; if not present, all offsets are considered to be 0.
 */
-CV_EXPORT const CFStringRef CV_NONNULL kCVPixelBufferProResRAWKey_SenselSitingOffsets API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(macosx) API_UNAVAILABLE(macCatalyst) __TVOS_PROHIBITED __WATCHOS_PROHIBITED;
+CV_EXPORT const CFStringRef CV_NONNULL kCVPixelBufferProResRAWKey_SenselSitingOffsets API_AVAILABLE(ios(14.0), macosx(11.0)) __TVOS_PROHIBITED __WATCHOS_PROHIBITED;
 
 /*!
     @const      kCVPixelBufferProResRAWKey_BlackLevel
     @abstract   Buffer attachment key for sensel black level.
     @discussion Associated attachment is a CFNumber of type kCFNumberSInt32Type.  The value is the sensel level corresponding to no light exposure.  This attachment is required for buffers with either the bp16 or bp64 format.
 */
-CV_EXPORT const CFStringRef CV_NONNULL kCVPixelBufferProResRAWKey_BlackLevel API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(macosx) API_UNAVAILABLE(macCatalyst) __TVOS_PROHIBITED __WATCHOS_PROHIBITED;
+CV_EXPORT const CFStringRef CV_NONNULL kCVPixelBufferProResRAWKey_BlackLevel API_AVAILABLE(ios(14.0), macosx(11.0)) __TVOS_PROHIBITED __WATCHOS_PROHIBITED;
 
 /*!
     @const      kCVPixelBufferProResRAWKey_WhiteLevel
     @abstract   Buffer attachment key for sensel white level.
     @discussion Associated attachment is a CFNumber of type kCFNumberSInt32Type.  The value is the sensel level corresponding to sensor (or camera A-to-D converter) saturation.  This attachment is required for buffers with either the bp16 or bp64 format.
 */
-CV_EXPORT const CFStringRef CV_NONNULL kCVPixelBufferProResRAWKey_WhiteLevel API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(macosx) API_UNAVAILABLE(macCatalyst) __TVOS_PROHIBITED __WATCHOS_PROHIBITED;
+CV_EXPORT const CFStringRef CV_NONNULL kCVPixelBufferProResRAWKey_WhiteLevel API_AVAILABLE(ios(14.0), macosx(11.0)) __TVOS_PROHIBITED __WATCHOS_PROHIBITED;
 
 /*!
     @const      kCVPixelBufferProResRAWKey_WhiteBalanceCCT
     @abstract   Buffer attachment key for illuminant correlated color temperature.
     @discussion Associated attachment is a CFNumber of type kCFNumberSInt32Type.  The value is the illuminant correlated color temperature (CCT), in kelvins, selected at the time of capture.  May be 0, indicating that the CCT is unknown or unspecified.  This attachment is optional for buffers with either the bp16 or bp64 format; if not present, the CCT is considered unknown or unspecified.
 */
-CV_EXPORT const CFStringRef CV_NONNULL kCVPixelBufferProResRAWKey_WhiteBalanceCCT API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(macosx) API_UNAVAILABLE(macCatalyst) __TVOS_PROHIBITED __WATCHOS_PROHIBITED;
+CV_EXPORT const CFStringRef CV_NONNULL kCVPixelBufferProResRAWKey_WhiteBalanceCCT API_AVAILABLE(ios(14.0), macosx(11.0)) __TVOS_PROHIBITED __WATCHOS_PROHIBITED;
 
 /*!
     @const      kCVPixelBufferProResRAWKey_WhiteBalanceRedFactor
     @abstract   Buffer attachment key for white balance red factor.
     @discussion Associated attachment is a CFNumber of type kCFNumberFloat32Type.  The value is the white balance multiplication factor for red-filtered sensels.  This attachment is required for buffers with either the bp16 or bp64 format.
 */
-CV_EXPORT const CFStringRef CV_NONNULL kCVPixelBufferProResRAWKey_WhiteBalanceRedFactor API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(macosx) API_UNAVAILABLE(macCatalyst) __TVOS_PROHIBITED __WATCHOS_PROHIBITED;
+CV_EXPORT const CFStringRef CV_NONNULL kCVPixelBufferProResRAWKey_WhiteBalanceRedFactor API_AVAILABLE(ios(14.0), macosx(11.0)) __TVOS_PROHIBITED __WATCHOS_PROHIBITED;
 
 /*!
     @const      kCVPixelBufferProResRAWKey_WhiteBalanceBlueFactor
     @abstract   Buffer attachment key for white balance blue factor.
     @discussion Associated attachment is a CFNumber of type kCFNumberFloat32Type.  The value is the white balance multiplication factor for blue-filtered sensels.  This attachment is required for buffers with either the bp16 or bp64 format.
 */
-CV_EXPORT const CFStringRef CV_NONNULL kCVPixelBufferProResRAWKey_WhiteBalanceBlueFactor API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(macosx) API_UNAVAILABLE(macCatalyst) __TVOS_PROHIBITED __WATCHOS_PROHIBITED;
+CV_EXPORT const CFStringRef CV_NONNULL kCVPixelBufferProResRAWKey_WhiteBalanceBlueFactor API_AVAILABLE(ios(14.0), macosx(11.0)) __TVOS_PROHIBITED __WATCHOS_PROHIBITED;
 
 /*!
     @const      kCVPixelBufferProResRAWKey_ColorMatrix
     @abstract   Buffer attachment key for color translation matrix.
     @discussion Associated attachment is CFData containing an array of 9 32-bit floats.  The value is a 3x3 matrix which transforms linear RGB pixel values in the camera native color space to CIE 1931 XYZ values relative to the D65 illuminant, where the matrix entries are stored in the CFData in row-major order.  This attachment is required for buffers with either the bp16 or bp64 format.
 */
-CV_EXPORT const CFStringRef CV_NONNULL kCVPixelBufferProResRAWKey_ColorMatrix API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(macosx) API_UNAVAILABLE(macCatalyst) __TVOS_PROHIBITED __WATCHOS_PROHIBITED;
+CV_EXPORT const CFStringRef CV_NONNULL kCVPixelBufferProResRAWKey_ColorMatrix API_AVAILABLE(ios(14.0), macosx(11.0)) __TVOS_PROHIBITED __WATCHOS_PROHIBITED;
 
 /*!
     @const      kCVPixelBufferProResRAWKey_GainFactor
     @abstract   Buffer attachment key for gain factor.
     @discussion Associated attachment is a CFNumber of type kCFNumberFloat32Type.  The value is the overall gain factor for raw conversion.  This attachment is required for buffers with either the bp16 or bp64 format.
 */
-CV_EXPORT const CFStringRef CV_NONNULL kCVPixelBufferProResRAWKey_GainFactor API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(macosx) API_UNAVAILABLE(macCatalyst) __TVOS_PROHIBITED __WATCHOS_PROHIBITED;
+CV_EXPORT const CFStringRef CV_NONNULL kCVPixelBufferProResRAWKey_GainFactor API_AVAILABLE(ios(14.0), macosx(11.0)) __TVOS_PROHIBITED __WATCHOS_PROHIBITED;
 
 /*!
     @const      kCVPixelBufferProResRAWKey_RecommendedCrop
     @abstract   Buffer attachment key for recommended number of pixels/rows to discard from the sides of the image after raw conversion.
     @discussion Associated attachment is CFData containing an array of 4 32-bit floats.  The four CFData array elements specify, in order, the recommended number of: pixels to discard from the start (left) of each row of the image; pixels to discard from the end (right) of each row of the image; rows of pixels to discard from the top of the image; and rows of pixels to discard from the bottom of the image.  (Pixels/rows are discarded after raw conversion.)  This attachment is optional for buffers with either the bp16 or bp64 format; if not present, the recommended crop values are considered to be 0.  For buffers with the bp64 format, the values may be nonintegral due to downscaling, in which case the handling of fractional parts is implementation-dependent.
 */
-CV_EXPORT const CFStringRef CV_NONNULL kCVPixelBufferProResRAWKey_RecommendedCrop API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(macosx) API_UNAVAILABLE(macCatalyst) __TVOS_PROHIBITED __WATCHOS_PROHIBITED;
+CV_EXPORT const CFStringRef CV_NONNULL kCVPixelBufferProResRAWKey_RecommendedCrop API_AVAILABLE(ios(14.0), macosx(11.0)) __TVOS_PROHIBITED __WATCHOS_PROHIBITED;
 
 /*!
     @typedef	CVPixelBufferRef
@@ -540,15 +572,24 @@
 */
 CV_EXPORT CVReturn CVPixelBufferFillExtendedPixels( CVPixelBufferRef CV_NONNULL pixelBuffer ) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_4_0);
 
+/*!
+    @function   CVPixelBufferCopyCreationAttributes
+    @abstract   Returns a copy of pixelBufferAttributes dictionary used to create the PixelBuffer.
+    @discussion Can be used to create similar pixelbuffers.
+    @param      pixelBuffer Target PixelBuffer.
+*/
+CV_EXPORT CFDictionaryRef CV_NONNULL CVPixelBufferCopyCreationAttributes( CVPixelBufferRef CV_NONNULL pixelBuffer ) CV_RETURNS_RETAINED API_AVAILABLE(macosx(12.0), ios(15.0), tvos(15.0), watchos(8.0));
 
 #if defined(__cplusplus)
 }
 #endif
 
+#if !0
 #if COREVIDEO_SUPPORTS_IOSURFACE
 #if __has_include(<CoreVideo/CVPixelBufferIOSurface.h>)
 #include <CoreVideo/CVPixelBufferIOSurface.h>
 #endif
 #endif
+#endif
 
 #endif
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVPixelFormatDescription.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVPixelFormatDescription.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVPixelFormatDescription.h	2021-03-16 05:19:18.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVPixelFormatDescription.h	2021-06-02 12:45:52.000000000 -0400
@@ -134,6 +134,14 @@
 /* Register a new pixel format with CoreVideo */
 CV_EXPORT void CVPixelFormatDescriptionRegisterDescriptionWithPixelFormatType(CFDictionaryRef CV_NONNULL description, OSType pixelFormat) __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_4_0);
 
+/*!
+	@function   CVIsCompressedPixelFormatAvailable
+	@abstract   Checks if a compressed pixel format is supported on the current platform.
+	@param      pixelFormatType compressed pixel format.
+	@result     True if pixel format is supported on the current platform.
+*/
+CV_EXPORT Boolean CVIsCompressedPixelFormatAvailable( OSType pixelFormatType ) API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0));
+
 #if COREVIDEO_SUPPORTS_DIRECT3D
 CV_EXPORT const CFStringRef CV_NONNULL kCVPixelFormatDirect3DFormat;
 CV_EXPORT const CFStringRef CV_NONNULL kCVPixelFormatDirect3DType;
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CoreVideo.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CoreVideo.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CoreVideo.h	2021-03-16 04:44:11.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CoreVideo.h	2021-05-24 23:11:05.000000000 -0400
@@ -51,7 +51,9 @@
 #include <CoreVideo/CVDirect3DTextureCache.h>
 #endif
 
+#if !0
 #if TARGET_OS_MAC
 #include <CoreVideo/CVMetalTexture.h>
 #include <CoreVideo/CVMetalTextureCache.h>
 #endif
+#endif
Clone this wiki locally