Skip to content

CoreMedia macOS xcode14.0 beta1

Manuel de la Pena edited this page Jul 15, 2022 · 3 revisions

#CoreMedia.framework https://github.com/xamarin/xamarin-macios/pull/15524

diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescription.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescription.h
--- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescription.h	2022-02-23 07:09:55.000000000 -0500
+++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescription.h	2022-05-31 15:03:26.000000000 -0400
@@ -483,6 +483,15 @@
 				If there is any sort of error that prevents the comparison from occurring, false will be returned, and
 				all bits in equalityMaskOut will be cleared. If you pass kCMAudioFormatDescriptionMask_All in equalityMask,
 				and NULL for equalityMaskOut, this API is equivalent to CFEqual(desc1, desc2).
+				
+				On releases up to macOS 12, iOS 15, tvOS 15 and watchOS 8, the kCMAudioFormatDescriptionMask_Extensions
+				flag was ignored in equalityMask. So this API always treated two audio format descriptions as equal even
+				when they had different extensions.
+ 
+				Starting with macOS 13, iOS 16, tvOS 16 and watchOS 9, kCMAudioFormatDescriptionMask_Extensions is correctly
+				accounted for when determining equality of two audio format descriptions. This also affects CFEqual(desc1, desc2)
+				as it will return false when two audio format descriptions have different extensions.
+ 
 	@result		The result of the comparison.  True if all parts in which the caller is interested are equal.
 				False if any of the parts in which the caller is interested are not equal.
 */
@@ -594,6 +603,9 @@
 	@constant	kCMVideoCodecType_AppleProRes422Proxy	Apple ProRes 422 Proxy format
 	@constant	kCMVideoCodecType_AppleProResRAW	Apple ProRes RAW format
 	@constant	kCMVideoCodecType_AppleProResRAWHQ	Apple ProRes RAW HQ format
+	@constant	kCMVideoCodecType_DisparityHEVC		Encodes kCVPixelFormatType_DisparityFloat16 using 10-bit monochrome HEVC
+	@constant	kCMVideoCodecType_DepthHEVC 		Encodes kCVPixelFormatType_DepthFloat16 using 10-bit monochrome HEVC
+	@constant	kCMVideoCodecType_AV1 		 AV1 video format
 */
 typedef FourCharCode CMVideoCodecType API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(6.0));
 #if COREMEDIA_USE_DERIVED_ENUMS_FOR_CONSTANTS
@@ -643,6 +655,8 @@
 
 	kCMVideoCodecType_DisparityHEVC    = 'dish', // encodes kCVPixelFormatType_DisparityFloat16 in 10-bit monochrome HEVC
 	kCMVideoCodecType_DepthHEVC        = 'deph', // encodes kCVPixelFormatType_DepthFloat16 in 10-bit monochrome HEVC
+
+	kCMVideoCodecType_AV1              = 'av01',
 } API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(6.0));
 
 /*!
diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescriptionBridge.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescriptionBridge.h
--- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescriptionBridge.h	2022-02-23 07:59:29.000000000 -0500
+++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescriptionBridge.h	2022-06-03 18:09:21.000000000 -0400
@@ -67,17 +67,24 @@
 	
 /*!
 	@constant	kCMImageDescriptionFlavor_ISOFamily
-	@abstract	Chooses the ISO family sample description format, used in MP4, M4V, etc.
+	@abstract	Chooses the ISO family sample description format, used in MP4
 */
 CM_EXPORT const CMImageDescriptionFlavor kCMImageDescriptionFlavor_ISOFamily			API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(6.0));	// MP4, etc
 	
 /*!
- 	@constant	kCMImageDescriptionFlavor_3GPFamily
+	@constant	kCMImageDescriptionFlavor_3GPFamily
 	@abstract	Chooses the 3GP family sample description format.
 	@discussion	This implies kCMImageDescriptionFlavor_ISOFamily and adds additional rules specific to the 3GP family.
 */
 CM_EXPORT const CMImageDescriptionFlavor kCMImageDescriptionFlavor_3GPFamily			API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(6.0));	// 3GPP (implies ISO)
 
+/*!
+	@constant	kCMImageDescriptionFlavor_ISOFamilyWithAppleExtensions
+	@abstract	Chooses the ISO family sample description format with use of Apple extensions where appropriate for M4V and M4A.
+	@discussion	This implies kCMImageDescriptionFlavor_ISOFamily and adds additional rules specific to the .m4a, .m4b, and .m4v file formats.
+*/
+CM_EXPORT const CMImageDescriptionFlavor kCMImageDescriptionFlavor_ISOFamilyWithAppleExtensions			API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0));	// M4A, M4V, etc (implies ISO)
+
 CM_ASSUME_NONNULL_END
 	
 /*!
diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSampleBuffer.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSampleBuffer.h
--- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSampleBuffer.h	2022-02-23 07:56:13.000000000 -0500
+++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSampleBuffer.h	2022-05-31 14:49:39.000000000 -0400
@@ -3,7 +3,7 @@
 	
 	Framework:  CoreMedia
  
-	Copyright © 2005-2019 Apple Inc. All rights reserved.
+	Copyright © 2005-2022 Apple Inc. All rights reserved.
  
 */
 
@@ -1879,6 +1879,7 @@
 CM_EXPORT const CFStringRef kCMSampleAttachmentKey_CryptorSubsampleAuxiliaryData // CFData
 						API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
 
+
 CM_ASSUME_NONNULL_END
 
 // Use CMAttachmentBearer APIs to set, get, and remove buffer-level attachments on the CMSampleBuffer itself
diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMTextMarkup.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMTextMarkup.h
--- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMTextMarkup.h	2022-02-23 10:57:09.000000000 -0500
+++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMTextMarkup.h	2022-06-03 18:09:21.000000000 -0400
@@ -3,7 +3,7 @@
 
     Framework:  CoreMedia
  
-    Copyright 2012-2015 Apple Inc. All rights reserved.
+    Copyright 2012-2022 Apple Inc. All rights reserved.
 
 */
 
@@ -118,6 +118,17 @@
 CM_EXPORT const CFStringRef kCMTextMarkupAttribute_FontFamilyName API_AVAILABLE(macos(10.9), ios(6.0), tvos(9.0), watchos(6.0));
 
 /*!
+    @const      kCMTextMarkupAttribute_FontFamilyNameList
+    @abstract   The array of font name(s) and if that name is a generic or a platform name.
+ 
+    @discussion Value must be a CFArray holding CFDictionaries that are used to render and/or measure text. Each dictionary entry has a font family name and a font kind value.
+                The font kind value can be either 0 for generic font family or 1 for platform font family corresponding to the font family name.
+                The CFArray value can hold multiple font names as a fallback where the author prefers specific fonts. If the renderer does not support the first font entry, it tries the following.
+                For example, the array includes InexistantFont and Times New Roman font names, it is expected the renderer to select the "Times New Roman" font for drawing caption.
+*/
+CM_EXPORT const CFStringRef kCMTextMarkupAttribute_FontFamilyNameList API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0));
+
+/*!
     @const      kCMTextMarkupAttribute_GenericFontFamilyName
     @abstract   The attribute holding a generic font family identifier.
  
diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CoreMedia.apinotes /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CoreMedia.apinotes
--- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CoreMedia.apinotes	2022-02-14 23:22:57.000000000 -0500
+++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CoreMedia.apinotes	2022-05-22 23:27:13.000000000 -0400
@@ -562,6 +562,8 @@
   SwiftName: "CMImageDescriptionFlavor.isoFamily"
 - Name: kCMImageDescriptionFlavor_3GPFamily
   SwiftName: "CMImageDescriptionFlavor.mobile3GPFamily"
+- Name: kCMImageDescriptionFlavor_ISOFamilyWithAppleExtensions
+  SwiftName: "CMImageDescriptionFlavor.isoFamilyWithAppleExtensions"
 - Name: kCMSoundDescriptionFlavor_QuickTimeMovie
   SwiftName: "CMSoundDescriptionFlavor.quickTimeMovie"
 - Name: kCMSoundDescriptionFlavor_QuickTimeMovieV2
Clone this wiki locally