Skip to content

CoreMedia tvOS xcode9 beta1

Vincent Dondain edited this page Jun 5, 2017 · 1 revision

#CoreMedia.framework

diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBase.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBase.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBase.h	2017-02-28 01:04:20.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBase.h	2017-05-21 19:04:39.000000000 -0400
@@ -3,7 +3,7 @@
 	
 	Framework:  CoreMedia
 	
-    Copyright 2006-2015 Apple Inc. All rights reserved.
+    Copyright 2006-2017 Apple Inc. All rights reserved.
 
 */
 
@@ -14,6 +14,16 @@
 #include <Availability.h>
 #include <AvailabilityMacros.h>
 
+// Pre-10.13, weak import
+#ifndef __AVAILABILITY_INTERNAL__MAC_10_13
+#define __AVAILABILITY_INTERNAL__MAC_10_13 __AVAILABILITY_INTERNAL_WEAK_IMPORT
+#endif
+
+// Pre- iOS 11.0 weak import
+#ifndef __AVAILABILITY_INTERNAL__IPHONE_11_0
+#define __AVAILABILITY_INTERNAL__IPHONE_11_0 __AVAILABILITY_INTERNAL_WEAK_IMPORT
+#endif
+
 // Pre-10.12, weak import
 #ifndef __AVAILABILITY_INTERNAL__MAC_10_12
 #define __AVAILABILITY_INTERNAL__MAC_10_12 __AVAILABILITY_INTERNAL_WEAK_IMPORT
@@ -140,6 +150,20 @@
 typedef signed long	CMItemIndex;
 #endif
 
+#ifndef COREMEDIA_USE_ALIGNED_CMBASECLASS_VERSION
+#define COREMEDIA_USE_ALIGNED_CMBASECLASS_VERSION 0
+#endif
+
+#if ! COREMEDIA_USE_ALIGNED_CMBASECLASS_VERSION
+	typedef uint32_t CMBaseClassVersion, CMStructVersion;
+#else
+#if TARGET_OS_IPHONE && TARGET_RT_64_BIT
+	typedef uint64_t CMBaseClassVersion, CMStructVersion;
+#else
+	typedef uint32_t CMBaseClassVersion, CMStructVersion;
+#endif
+#endif
+
 #define COREMEDIA_USE_DERIVED_ENUMS_FOR_CONSTANTS	(__cplusplus && __cplusplus >= 201103L && (__has_extension(cxx_strong_enums) || __has_feature(objc_fixed_enum))) || (!__cplusplus && __has_feature(objc_fixed_enum))
 
 #if (TARGET_OS_IPHONE || TARGET_OS_MAC) && defined(__has_feature)
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBlockBuffer.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBlockBuffer.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBlockBuffer.h	2016-09-23 19:19:23.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBlockBuffer.h	2017-05-21 19:04:39.000000000 -0400
@@ -16,7 +16,7 @@
 	@discussion	BlockBuffers are CF objects that are used to move blocks of memory through a processing system.
 	A CMBlockBuffer represents a contiguous range of data offsets, from zero to CMBlockBufferGetDataLength(), across a
 	possibly noncontiguous memory region composed of memoryBlocks and buffer references which in turn could
-	refer to addtional regions.
+	refer to additional regions.
 	<BR>
 	IMPORTANT: Clients of CMBlockBuffer must explicitly manage the retain count by 
 	calling CFRetain and CFRelease even in processes using garbage collection.  
@@ -116,11 +116,11 @@
 /*!
 	@typedef CMBlockBufferCustomBlockSource
 	Used with functions that accept a memory block allocator, this structure allows a client to provide a custom facility for
-	obtaining the memory block to be used in a CMBlockBuffer. The Allocate function must be non-zero if the CMBlockBuffer code will
+	obtaining the memory block to be used in a CMBlockBuffer. The AllocateBlock function must be non-zero if the CMBlockBuffer code will
 	need to call for allocation (not required if a previously-obtained memory block is provided to the CMBlockBuffer API). The
-	Free() routine, if non-NULL, will be called once when the CMBlockBuffer is disposed. It will not be called if no memory block
-	is ever allocated or supplied. The refCon will be passed to both the Allocate and Free() calls. The client is responsible for
-	its disposal (if any) during the Free() callback.
+	FreeBlock() routine, if non-NULL, will be called once when the CMBlockBuffer is disposed. It will not be called if no memory block
+	is ever allocated or supplied. The refCon will be passed to both the AllocateBlock and FreeBlock() calls. The client is responsible for
+	its disposal (if any) during the FreeBlock() callback.
 */
 typedef  struct {
 	uint32_t	version;
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescription.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescription.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescription.h	2016-08-11 00:18:55.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescription.h	2017-05-21 23:53:13.000000000 -0400
@@ -3,7 +3,7 @@
 
 	Framework:  CoreMedia
  
-    Copyright 2005-2015 Apple Inc. All rights reserved.
+    Copyright 2005-2017 Apple Inc. All rights reserved.
 
 */
 
@@ -714,10 +714,14 @@
 #define kCMFormatDescriptionTransferFunction_ITU_R_709_2		kCVImageBufferTransferFunction_ITU_R_709_2		// CFString
 #define kCMFormatDescriptionTransferFunction_SMPTE_240M_1995	kCVImageBufferTransferFunction_SMPTE_240M_1995	// CFString
 #define kCMFormatDescriptionTransferFunction_UseGamma			kCVImageBufferTransferFunction_UseGamma			// CFString
-CM_EXPORT const CFStringRef kCMFormatDescriptionTransferFunction_ITU_R_2020										// same as kCVImageBufferTransferFunction_ITU_R_2020
+CM_EXPORT const CFStringRef kCMFormatDescriptionTransferFunction_ITU_R_2020										// same as kCVImageBufferTransferFunction_ITU_R_2020. note: semantically equivalent to kCMFormatDescriptionTransferFunction_ITU_R_709_2, which is preferred.
 							__OSX_AVAILABLE_STARTING(__MAC_10_11,__IPHONE_9_0);
 CM_EXPORT const CFStringRef kCMFormatDescriptionTransferFunction_SMPTE_ST_428_1									// same as kCVImageBufferTransferFunction_SMPTE_ST_428_1
 							__OSX_AVAILABLE_STARTING(__MAC_10_12,__IPHONE_10_0);
+CM_EXPORT const CFStringRef kCMFormatDescriptionTransferFunction_SMPTE_ST_2084_PQ								// same as kCVImageBufferTransferFunction_SMPTE_ST_2084_PQ
+							__OSX_AVAILABLE_STARTING(__MAC_10_13,__IPHONE_11_0);
+CM_EXPORT const CFStringRef kCMFormatDescriptionTransferFunction_ITU_R_2100_HLG								// same as kCVImageBufferTransferFunction_ITU_R_2100_HLG
+							__OSX_AVAILABLE_STARTING(__MAC_10_13,__IPHONE_11_0);
 
 CM_EXPORT const CFStringRef kCMFormatDescriptionExtension_GammaLevel __OSX_AVAILABLE_STARTING(__MAC_10_11,__IPHONE_9_0);
 #define kCMFormatDescriptionExtension_GammaLevel				kCVImageBufferGammaLevelKey						// CFNumber describing the gamma level, used in absence of (or ignorance of) kCMFormatDescriptionExtension_TransferFunction
@@ -830,6 +834,11 @@
 CM_EXPORT const CFStringRef kCMFormatDescriptionVendor_Apple
 							__OSX_AVAILABLE_STARTING(__MAC_10_7,__IPHONE_4_0);
 
+CM_EXPORT const CFStringRef kCMFormatDescriptionExtension_MasteringDisplayColorVolume	// CFData(24 bytes); big-endian structure; same as kCVImageBufferMasteringDisplayColorVolumeKey; matches payload of ISO/IEC 23008-2:2015(E), D.2.28 Mastering display colour volume SEI message
+							__OSX_AVAILABLE_STARTING(__MAC_10_13,__IPHONE_11_0);
+CM_EXPORT const CFStringRef kCMFormatDescriptionExtension_ContentLightLevelInfo			// CFData(4 bytes); big-endian structure; same as kCVImageBufferContentLightLevelInfoKey
+							__OSX_AVAILABLE_STARTING(__MAC_10_13,__IPHONE_11_0);
+
 CM_ASSUME_NONNULL_END
 
 CF_IMPLICIT_BRIDGING_DISABLED
@@ -899,13 +908,36 @@
 	CM_RETURNS_RETAINED_PARAMETER CMFormatDescriptionRef CM_NULLABLE * CM_NONNULL formatDescriptionOut )	/*! @param formatDescriptionOut
 																				Returned newly-created video CMFormatDescription */
 							__OSX_AVAILABLE_STARTING(__MAC_10_9,__IPHONE_7_0);
+	
+/*!
+	@function	CMVideoFormatDescriptionCreateFromHEVCParameterSets
+	@abstract	Creates a format description for a video media stream described by HEVC (H.265) parameter set NAL units.
+	@discussion	This function parses the dimensions provided by the parameter sets and creates a format description suitable for a raw H.265 stream.
+				The parameter sets' data can come from raw NAL units and must have any emulation prevention bytes needed.
+				The supported NAL unit types to be included in the format description are 32 (video parameter set), 33 (sequence parameter set), 34 (picture parameter set), 39 (prefix SEI) and 40 (suffix SEI). At least one of each parameter set must be provided.
+*/
+CM_EXPORT
+OSStatus CMVideoFormatDescriptionCreateFromHEVCParameterSets(
+	CFAllocatorRef CM_NULLABLE allocator,									/*! @param allocator
+																				 CFAllocator to be used when creating the CMFormatDescription. Pass NULL to use the default allocator. */
+	size_t parameterSetCount,												/*! @param parameterSetCount
+																				 The number of parameter sets to include in the format description. This parameter must be at least 3. */
+	const uint8_t * CM_NONNULL const * CM_NONNULL parameterSetPointers,		/*! @param parameterSetPointers
+																				 Points to a C array containing parameterSetCount pointers to parameter sets. */
+	const size_t * CM_NONNULL parameterSetSizes,							/*! @param parameterSetSizes
+																				 Points to a C array containing the size, in bytes, of each of the parameter sets. */
+	int NALUnitHeaderLength,												/*! @param NALUnitHeaderLength
+																				 Size, in bytes, of the NALUnitLength field in a HEVC video sample or HEVC parameter set sample. Pass 1, 2 or 4. */
+	CM_RETURNS_RETAINED_PARAMETER CMFormatDescriptionRef CM_NULLABLE * CM_NONNULL formatDescriptionOut )	/*! @param formatDescriptionOut
+																				 Returned newly-created video CMFormatDescription */
+							__OSX_AVAILABLE_STARTING(__MAC_10_13,__IPHONE_11_0);
 
 CF_IMPLICIT_BRIDGING_ENABLED
 
 /*!
 	@function	CMVideoFormatDescriptionGetH264ParameterSetAtIndex
 	@abstract	Returns a parameter set contained in a H.264 format description.
-	@discussion	This function parses the AVC decoder configuration record contained in a H.264 video format description and returns the parameter set NAL unit at the given index from it.
+	@discussion	This function parses the AVC decoder configuration record contained in a H.264 video format description and returns the NAL unit at the given index from it.  These NAL units are typically parameter sets (e.g. SPS, PPS), but may contain others as specified by ISO/IEC 14496-15 (e.g. user-data SEI).
 				Both parameterSetPointerOut and parameterSetSizeOut may be NULL, parameterSetCountOut will return the total number of parameter set NAL units contained in the AVC decoder configuration record.
 				The parameter set NAL units returned will already have any emulation prevention bytes needed.
 				The pointer returned in parameterSetPointerOut points to internal memory of videoDesc, and may only be accessed as long as a retain on videoDesc is held.
@@ -925,6 +957,30 @@
 		int * CM_NULLABLE NALUnitHeaderLengthOut )						/*! @param NALUnitHeaderLengthOut
 																			Points to an int to receive the size, in bytes, of the NALUnitLength field in an AVC video sample or AVC parameter set sample. Pass NULL if you do not want this information. */
 							__OSX_AVAILABLE_STARTING(__MAC_10_9,__IPHONE_7_0);
+	
+/*!
+	@function	CMVideoFormatDescriptionGetHEVCParameterSetAtIndex
+	@abstract	Returns a parameter set contained in a HEVC (H.265) format description.
+	@discussion	This function parses the HEVC decoder configuration record contained in a H.265 video format description and returns the NAL unit at the given index from it.  These NAL units are typically parameter sets (e.g. VPS, SPS, PPS), but may contain others as specified by ISO/IEC 14496-15 (e.g. user-data SEI).
+				Both parameterSetPointerOut and parameterSetSizeOut may be NULL, parameterSetCountOut will return the total number of parameter set NAL units contained in the HEVC decoder configuration record.
+				The parameter set NAL units returned will already have any emulation prevention bytes needed.
+				The pointer returned in parameterSetPointerOut points to internal memory of videoDesc, and may only be accessed as long as a retain on videoDesc is held.
+*/
+CM_EXPORT
+OSStatus CMVideoFormatDescriptionGetHEVCParameterSetAtIndex(
+		CMFormatDescriptionRef CM_NONNULL videoDesc,					/*! @param videoDesc
+																			 FormatDescription being interrogated. */
+		size_t parameterSetIndex,										/*! @param parameterSetIndex
+																			 Index of the parameter set to be returned in parameterSetPointerOut and parameterSetSizeOut. This parameter is ignored if both parameterSetPointerOut and parameterSetSizeOut are NULL. */
+		const uint8_t * CM_NULLABLE * CM_NULLABLE parameterSetPointerOut,	/*! @param parameterSetPointerOut
+																				Points to a pointer to receive the parameter set. Pass NULL if you do not want this information. */
+		size_t * CM_NULLABLE parameterSetSizeOut,						/*! @param parameterSetSizeOut
+																			 Points to a size_t to receive the size in bytes of the parameter set. Pass NULL if you do not want this information. */
+		size_t * CM_NULLABLE parameterSetCountOut,						/*! @param parameterSetCountOut
+																			 Number of parameter sets in the HEVC decoder configuration record contained in videoDesc. Pass NULL if you do not want this information. */
+		int * CM_NULLABLE NALUnitHeaderLengthOut )						/*! @param NALUnitHeaderLengthOut
+																			 Points to an int to receive the size, in bytes, of the NALUnitLength field in an HEVC video sample or HEVC parameter set sample. Pass NULL if you do not want this information. */
+							__OSX_AVAILABLE_STARTING(__MAC_10_13,__IPHONE_11_0);
 
 #define CMVideoFormatDescriptionGetCodecType(desc)  CMFormatDescriptionGetMediaSubType(desc)
 
@@ -1339,7 +1395,7 @@
 													Returned true if style includes Underline. May be NULL. */
 	CGFloat * CM_NULLABLE outFontSize,			/*! @param outFontSize
 													FontSize in points. May be NULL. */
-	/* CM_NULLABLE */ CGFloat outColorComponents[4])	/*! @param outColorComponents
+	CGFloat outColorComponents[CM_NULLABLE 4])	/*! @param outColorComponents
 													Components are in order red, green, blue, alpha. May be NULL. */
 							__OSX_AVAILABLE_STARTING(__MAC_10_7,__IPHONE_4_0);
 	
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSampleBuffer.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSampleBuffer.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSampleBuffer.h	2016-10-06 01:46:25.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSampleBuffer.h	2017-05-21 23:57:18.000000000 -0400
@@ -3,7 +3,7 @@
 	
 	Framework:  CoreMedia
  
-    Copyright 2005-2015 Apple Inc. All rights reserved.
+    Copyright © 2005-2017 Apple Inc. All rights reserved.
  
 */
 
@@ -870,7 +870,7 @@
 Boolean CMSampleBufferHasDataFailed(
 	CMSampleBufferRef CM_NONNULL sbuf,	/*! @param sbuf
 											CMSampleBuffer being interrogated. */
-	OSStatus * CM_NONNULL statusOut)		/*! @param statusOut
+	OSStatus * CM_NULLABLE statusOut)	/*! @param statusOut
 											Points to an OSStatus to receive a status code describing the failure.
 											Pass NULL if you do not want this information. */
 							__OSX_AVAILABLE_STARTING(__MAC_10_10,__IPHONE_8_0);
@@ -1374,7 +1374,7 @@
 							__OSX_AVAILABLE_STARTING(__MAC_10_7,__IPHONE_4_0);
 CM_EXPORT const CFStringRef kCMSampleAttachmentKey_IsDependedOnByOthers  // kCFBooleanTrue, kCFBooleanFalse, or absent if unknown
 							__OSX_AVAILABLE_STARTING(__MAC_10_7,__IPHONE_4_0);
-CM_EXPORT const CFStringRef kCMSampleAttachmentKey_DependsOnOthers  // kCFBooleanTrue, kCFBooleanFalse, or absent if unknown
+CM_EXPORT const CFStringRef kCMSampleAttachmentKey_DependsOnOthers  // kCFBooleanTrue (e.g., non-I-frame), kCFBooleanFalse (e.g. I-frame), or absent if unknown
 							__OSX_AVAILABLE_STARTING(__MAC_10_7,__IPHONE_4_0);
 CM_EXPORT const CFStringRef kCMSampleAttachmentKey_EarlierDisplayTimesAllowed  // CFBoolean
 							__OSX_AVAILABLE_STARTING(__MAC_10_7,__IPHONE_4_0);
@@ -1396,6 +1396,42 @@
 							__OSX_AVAILABLE_STARTING(__MAC_10_7,__IPHONE_4_0);
 
 /*!
+	@constant	kCMSampleAttachmentKey_HEVCTemporalLevelInfo
+	@abstract	Indicates a video frame's level within a hierarchical frame dependency structure.
+	@discussion
+		When present, the temporal level attachments among a group of video frames provide information about where inter-frame dependencies may and may not exist.  
+		The temporal level attachment, if present, is a positive CFNumber, and indicates that this video frame does not depend on any video frame with a greater temporal level.
+		The attachment may be absent if no such information is available.
+
+*/
+CM_EXPORT const CFStringRef kCMSampleAttachmentKey_HEVCTemporalLevelInfo  // CFDictionary(kCMHEVCTemporalLevelInfoKey_*), optional.  Corresponds to 'tscl' sample group.
+							__OSX_AVAILABLE_STARTING(__MAC_10_13,__IPHONE_11_0);
+
+CM_EXPORT const CFStringRef kCMHEVCTemporalLevelInfoKey_TemporalLevel					// CFNumber(Int)
+							__OSX_AVAILABLE_STARTING(__MAC_10_13,__IPHONE_11_0);
+CM_EXPORT const CFStringRef kCMHEVCTemporalLevelInfoKey_ProfileSpace					// CFNumber(Int)
+							__OSX_AVAILABLE_STARTING(__MAC_10_13,__IPHONE_11_0);
+CM_EXPORT const CFStringRef kCMHEVCTemporalLevelInfoKey_TierFlag						// CFNumber(Int)
+							__OSX_AVAILABLE_STARTING(__MAC_10_13,__IPHONE_11_0);
+CM_EXPORT const CFStringRef kCMHEVCTemporalLevelInfoKey_ProfileIndex					// CFNumber(Int)
+							__OSX_AVAILABLE_STARTING(__MAC_10_13,__IPHONE_11_0);
+CM_EXPORT const CFStringRef kCMHEVCTemporalLevelInfoKey_ProfileCompatibilityFlags		// CFData(4 bytes)
+							__OSX_AVAILABLE_STARTING(__MAC_10_13,__IPHONE_11_0);
+CM_EXPORT const CFStringRef kCMHEVCTemporalLevelInfoKey_ConstraintIndicatorFlags		// CFData(6 bytes)
+							__OSX_AVAILABLE_STARTING(__MAC_10_13,__IPHONE_11_0);
+CM_EXPORT const CFStringRef kCMHEVCTemporalLevelInfoKey_LevelIndex						// CFNumber(Int)
+							__OSX_AVAILABLE_STARTING(__MAC_10_13,__IPHONE_11_0);
+
+CM_EXPORT const CFStringRef kCMSampleAttachmentKey_HEVCTemporalSubLayerAccess			// CFBoolean, optional.  Corresponds to 'tsas' sample group.
+							__OSX_AVAILABLE_STARTING(__MAC_10_13,__IPHONE_11_0);
+
+CM_EXPORT const CFStringRef kCMSampleAttachmentKey_HEVCStepwiseTemporalSubLayerAccess  // CFBoolean, optional.  Corresponds to 'stsa' sample group.
+							__OSX_AVAILABLE_STARTING(__MAC_10_13,__IPHONE_11_0);
+
+CM_EXPORT const CFStringRef kCMSampleAttachmentKey_HEVCSyncSampleNALUnitType			// CFNumber(Int), optional.  Corresponds to 'sync' sample group.
+							__OSX_AVAILABLE_STARTING(__MAC_10_13,__IPHONE_11_0);
+
+/*!
 	@constant	kCMSampleBufferAttachmentKey_TransitionID
 	@abstract	Marks a transition from one source of buffers (eg. song) to another
 	@discussion
@@ -1671,6 +1707,20 @@
 							__OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_9_0);
 
 /*!
+	 @constant	kCMSampleBufferAttachmentKey_CameraIntrinsicMatrix
+	 @abstract	Indicates the 3x3 camera intrinsic matrix applied to the current sample buffer.
+	 @discussion
+		Camera intrinsic matrix is a CFData containing a matrix_float3x3, which is column-major. It has the following contents:
+			fx	0	ox
+			0	fy	oy
+			0	0	1
+			fx and fy are the focal length in pixels. For square pixels, they will have the same value.
+			ox and oy are the coordinates of the principal point. The origin is the upper left of the frame.
+ */
+CM_EXPORT const CFStringRef kCMSampleBufferAttachmentKey_CameraIntrinsicMatrix  // CFData (matrix_float3x3)
+							__OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_11_0);
+
+/*!
 	@constant	kCMSampleBufferAttachmentKey_ForceKeyFrame
 	@abstract	Indicates that the current or next video sample buffer should be forced to be encoded as a key frame.
 	@discussion
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMTimeRange.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMTimeRange.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMTimeRange.h	2016-10-06 01:46:21.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMTimeRange.h	2017-05-21 23:57:18.000000000 -0400
@@ -257,14 +257,14 @@
 CM_ASSUME_NONNULL_BEGIN
 
 /*!
-	@defined kCMTimeRangeTimeKey
+	@constant kCMTimeRangeStartKey
 	@discussion CFDictionary key for start field of a CMTimeRange (CMTime)
 */
 CM_EXPORT const CFStringRef kCMTimeRangeStartKey
 							__OSX_AVAILABLE_STARTING(__MAC_10_7,__IPHONE_4_0);
 
 /*!
-	@defined kCMTimeRangeDurationKey
+	@constant kCMTimeRangeDurationKey
 	@discussion CFDictionary key for timescale field of a CMTimeRange (CMTime)
 */
 CM_EXPORT const CFStringRef kCMTimeRangeDurationKey
@@ -386,14 +386,14 @@
 							__OSX_AVAILABLE_STARTING(__MAC_10_11,__IPHONE_9_0);
 CM_ASSUME_NONNULL_BEGIN
 /*!
-	@defined kCMTimeMappingSourceKey
+	@constant kCMTimeMappingSourceKey
 	@discussion CFDictionary key for source field of a CMTimeMapping (CMTimeRange)
 */
 CM_EXPORT const CFStringRef kCMTimeMappingSourceKey
 							__OSX_AVAILABLE_STARTING(__MAC_10_11,__IPHONE_9_0);
 
 /*!
-	@defined kCMTimeMappingTargetKey
+	@constant kCMTimeMappingTargetKey
 	@discussion CFDictionary key for target field of a CMTimeMapping (CMTimeRange)
 */
 CM_EXPORT const CFStringRef kCMTimeMappingTargetKey
Clone this wiki locally