Skip to content

CoreMedia macOS xcode13.0 rc

Alex Soto edited this page Sep 14, 2021 · 1 revision

#CoreMedia.framework

diff -ruN /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBase.h /Applications/Xcode_13.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBase.h
--- /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBase.h	2021-08-07 08:51:24.000000000 -0400
+++ /Applications/Xcode_13.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBase.h	2021-08-03 21:50:58.000000000 -0400
@@ -14,8 +14,10 @@
 #include <Availability.h>
 #include <AvailabilityMacros.h>
 
-#ifndef TARGET_OS_WINDOWS
-#define TARGET_OS_WINDOWS 0
+// HLS Tools builds with 10.14.4 and TARGET_OS_MACCATALYST is defined, but the rest of the code has switched to TARGET_OS_MACCATALYST, so define TARGET_OS_MACCATALYST
+// Remove this once HLS Tools starts using 10.15.  See rdar://problem/58379699
+#ifndef TARGET_OS_MACCATALYST
+#define TARGET_OS_MACCATALYST TARGET_OS_MACCATALYST
 #endif
 
 // Pre-10.16, weak import
@@ -165,7 +167,7 @@
 #include <stddef.h>						// size_t
 
 #include <CoreFoundation/CFBase.h>		// OSStatus, Boolean, Float32, Float64, CF_NOESCAPE
-#if ! TARGET_OS_WINDOWS
+#if ! 0
 #include <CoreFoundation/CFAvailability.h>	// CF_EXTENSIBLE_STRING_ENUM
 #endif
 
@@ -187,15 +189,11 @@
 #define COREMEDIA_TRUE (1 && 1)
 #define COREMEDIA_FALSE (0 && 1)
 
-#if TARGET_OS_WIN32
-	#define CM_EXPORT __declspec( dllimport ) extern
-	#define VT_EXPORT __declspec( dllimport ) extern
-	#define MT_EXPORT __declspec( dllimport ) extern
-#else
+
 	#define CM_EXPORT extern
 	#define VT_EXPORT extern
 	#define MT_EXPORT extern
-#endif
+
 
 // These have 32-bit range in a 32-bit build, and 64-bit range in a 64-bit build.
 typedef CFIndex CMItemCount;
@@ -210,7 +208,7 @@
 	typedef uint32_t CMBaseClassVersion, CMStructVersion;
 	#define COREMEDIA_CMBASECLASS_VERSION_IS_POINTER_ALIGNED COREMEDIA_FALSE
 #else
-#if (TARGET_OS_OSX || TARGET_OS_MACCATALYST || TARGET_OS_WINDOWS) && TARGET_CPU_X86_64
+#if (TARGET_OS_OSX || TARGET_OS_MACCATALYST || 0) && TARGET_CPU_X86_64
 	typedef uint32_t CMBaseClassVersion, CMStructVersion;
 	#define COREMEDIA_CMBASECLASS_VERSION_IS_POINTER_ALIGNED COREMEDIA_FALSE
 #else
diff -ruN /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBufferQueue.h /Applications/Xcode_13.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBufferQueue.h
--- /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBufferQueue.h	2021-08-06 23:46:53.000000000 -0400
+++ /Applications/Xcode_13.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMBufferQueue.h	2021-08-03 21:50:58.000000000 -0400
@@ -237,33 +237,42 @@
 				CMBuffer.  Durations must always be positive.
 */
 typedef struct {
-	uint32_t					version;						/*!< Must be 0 or 1. */
-	void * CM_NULLABLE refcon;									/*!< Client refcon to be passed to all callbacks (can be NULL,
+	uint32_t					version;						/*! @field version
+																	Must be 0 or 1. */
+	void * CM_NULLABLE refcon;									/*! @field refcon
+																	Client refcon to be passed to all callbacks (can be NULL,
 																	if the callbacks don't require it). */
-	CMBufferGetTimeCallback CM_NULLABLE		getDecodeTimeStamp;	/*!< This callback is called from CMBufferQueueGetFirstDecodeTimeStamp (once),
+	CMBufferGetTimeCallback CM_NULLABLE		getDecodeTimeStamp;	/*! @field getDecodeTimeStamp
+																	This callback is called from CMBufferQueueGetFirstDecodeTimeStamp (once),
 																	and from CMBufferQueueGetMinDecodeTimeStamp (multiple times).  It should
 																	return the decode timestamp of the buffer.  If there are multiple samples
 																	in the buffer, this callback should return the minimum decode timestamp
 																	in the buffer. Can be NULL (CMBufferQueueGetFirstDecodeTimeStamp and
 																	CMBufferQueueGetMinDecodeTimeStamp will return kCMTimeInvalid). */
-	CMBufferGetTimeCallback CM_NULLABLE getPresentationTimeStamp;/*!< This callback is called from CMBufferQueueGetFirstPresentationTimeStamp
+	CMBufferGetTimeCallback CM_NULLABLE getPresentationTimeStamp;/*! @field getPresentationTimeStamp
+																	This callback is called from CMBufferQueueGetFirstPresentationTimeStamp
 																	(once) and from CMBufferQueueGetMinPresentationTimeStamp (multiple times).
 																	It should return the presentation timestamp of the buffer.  If there are
 																	multiple samples in the buffer, this callback should return the minimum
 																	presentation timestamp in the buffer. Can be NULL
 																	(CMBufferQueueGetFirstPresentationTimeStamp and
 																	CMBufferQueueGetMinPresentationTimeStamp will return kCMTimeInvalid). */
-	CMBufferGetTimeCallback CM_NONNULL getDuration;				/*!< This callback is called (once) during enqueue and dequeue operations to
+	CMBufferGetTimeCallback CM_NONNULL getDuration;				/*! @field getDuration
+																	This callback is called (once) during enqueue and dequeue operations to
 																	update the total duration of the queue.  Must not be NULL. */
-	CMBufferGetBooleanCallback CM_NULLABLE isDataReady;			/*!< This callback is called from CMBufferQueueDequeueIfDataReadyAndRetain, to
+	CMBufferGetBooleanCallback CM_NULLABLE isDataReady;			/*! @field isDataReady
+																	This callback is called from CMBufferQueueDequeueIfDataReadyAndRetain, to
 																	ask if the buffer that is about to be dequeued is ready.  Can be NULL
 																	(data will be assumed to be ready). */
-	CMBufferCompareCallback CM_NULLABLE compare;				/*!< This callback is called (multiple times) from CMBufferQueueEnqueue, to
+	CMBufferCompareCallback CM_NULLABLE compare;				/*! @field compare
+																	This callback is called (multiple times) from CMBufferQueueEnqueue, to
 																	perform an insertion sort. Can be NULL (queue will be FIFO). */
-	CFStringRef CM_NULLABLE dataBecameReadyNotification;		/*!< If triggers of type kCMBufferQueueTrigger_WhenDataBecomesReady are installed,
+	CFStringRef CM_NULLABLE dataBecameReadyNotification;		/*! @field dataBecameReadyNotification
+																	If triggers of type kCMBufferQueueTrigger_WhenDataBecomesReady are installed,
 																	the queue will listen for this notification on the head buffer. 
 																	Can be NULL (then the queue won't listen for it). */
-	CMBufferGetSizeCallback CM_NULLABLE getSize;				/*!< This callback is called (once) during enqueue and dequeue operation to
+	CMBufferGetSizeCallback CM_NULLABLE getSize;				/*! @field getSize
+																	This callback is called (once) during enqueue and dequeue operation to
 																	update the total size of the queue. Can be NULL.  Ignored if version < 1. */
 } CMBufferCallbacks API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(6.0));
 
@@ -271,31 +280,39 @@
 #pragma pack(push)
 #pragma pack()
 typedef struct {
-	uintptr_t version;											/*!< Must be 1. */
-	CMBufferGetTimeHandler CM_NULLABLE getDecodeTimeStamp;		/*!< This block is called from CMBufferQueueGetFirstDecodeTimeStamp (once),
+	uintptr_t version;											/*! @field version
+																	Must be 1. */
+	CMBufferGetTimeHandler CM_NULLABLE getDecodeTimeStamp;		/*! @field getDecodeTimeStamp
+																	This block is called from CMBufferQueueGetFirstDecodeTimeStamp (once),
 																	and from CMBufferQueueGetMinDecodeTimeStamp (multiple times).  It should
 																	return the decode timestamp of the buffer.  If there are multiple samples
 																	in the buffer, this block should return the minimum decode timestamp
 																	in the buffer. Can be NULL (CMBufferQueueGetFirstDecodeTimeStamp and
 																	CMBufferQueueGetMinDecodeTimeStamp will return kCMTimeInvalid). */
-	CMBufferGetTimeHandler CM_NULLABLE getPresentationTimeStamp;/*!< This block is called from CMBufferQueueGetFirstPresentationTimeStamp
+	CMBufferGetTimeHandler CM_NULLABLE getPresentationTimeStamp;/*! @field getPresentationTimeStamp
+																	This block is called from CMBufferQueueGetFirstPresentationTimeStamp
 																	(once) and from CMBufferQueueGetMinPresentationTimeStamp (multiple times).
 																	It should return the presentation timestamp of the buffer.  If there are
 																	multiple samples in the buffer, this block should return the minimum
 																	presentation timestamp in the buffer. Can be NULL
 																	(CMBufferQueueGetFirstPresentationTimeStamp and
 																	CMBufferQueueGetMinPresentationTimeStamp will return kCMTimeInvalid). */
-	CMBufferGetTimeHandler CM_NONNULL getDuration;				/*!< This block is called (once) during enqueue and dequeue operations to
+	CMBufferGetTimeHandler CM_NONNULL getDuration;				/*! @field getDuration
+																	This block is called (once) during enqueue and dequeue operations to
 																	update the total duration of the queue.  Must not be NULL. */
-	CMBufferGetBooleanHandler CM_NULLABLE isDataReady;			/*!< This block is called from CMBufferQueueDequeueIfDataReadyAndRetain, to
+	CMBufferGetBooleanHandler CM_NULLABLE isDataReady;			/*! @field isDataReady
+																	This block is called from CMBufferQueueDequeueIfDataReadyAndRetain, to
 																	ask if the buffer that is about to be dequeued is ready.  Can be NULL
 																	(data will be assumed to be ready). */
-	CMBufferCompareHandler CM_NULLABLE compare;					/*!< This block is called (multiple times) from CMBufferQueueEnqueue, to
+	CMBufferCompareHandler CM_NULLABLE compare;					/*! @field compare
+																	This block is called (multiple times) from CMBufferQueueEnqueue, to
 																	perform an insertion sort. Can be NULL (queue will be FIFO). */
-	CFStringRef CM_NULLABLE dataBecameReadyNotification;		/*!< If triggers of type kCMBufferQueueTrigger_WhenDataBecomesReady are installed,
+	CFStringRef CM_NULLABLE dataBecameReadyNotification;		/*! @field dataBecameReadyNotification
+																	If triggers of type kCMBufferQueueTrigger_WhenDataBecomesReady are installed,
 																	the queue will listen for this notification on the head buffer. 
 																	Can be NULL (then the queue won't listen for it). */
-	CMBufferGetSizeHandler CM_NULLABLE getSize;					/*!< This block is called (once) during enqueue and dequeue operation to
+	CMBufferGetSizeHandler CM_NULLABLE getSize;					/*! @field getSize
+																	This block is called (once) during enqueue and dequeue operation to
 																	update the total size of the queue. Can be NULL. */
 } CMBufferHandlers API_AVAILABLE(macos(10.14.4), ios(12.2), tvos(12.2), watchos(6.0));
 #pragma pack(pop)
diff -ruN /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescription.h /Applications/Xcode_13.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescription.h
--- /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescription.h	2021-08-07 05:21:44.000000000 -0400
+++ /Applications/Xcode_13.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescription.h	2021-08-03 21:50:58.000000000 -0400
@@ -3,7 +3,7 @@
 
 	Framework:  CoreMedia
  
-	Copyright © 2005-2021 Apple Inc. All rights reserved.
+	Copyright © 2005-2020 Apple Inc. All rights reserved.
 
 */
 
@@ -640,7 +640,6 @@
 
 	kCMVideoCodecType_AppleProResRAW   = 'aprn',
 	kCMVideoCodecType_AppleProResRAWHQ = 'aprh',
-
 } API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(6.0));
 
 /*!
@@ -873,12 +872,6 @@
 CM_EXPORT const CFStringRef kCMFormatDescriptionExtension_ContainsAlphaChannel	// CFBoolean; used to signal the presence of alpha channel in the bitstream.
 							API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0));
 
-CM_EXPORT const CFStringRef kCMFormatDescriptionExtension_BitsPerComponent 	// CFNumber (such as 8, 10, 12, 16, etc). Bit-depth per component -- if there are components with different bit depths this should be the deepest. Do not rely on this extension always being present, as it often isn't.
-							API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
-
-CM_EXPORT const CFStringRef kCMFormatDescriptionExtension_HorizontalFieldOfView	// CFNumber; horizontal field of view in thousandths of a degree (i.e., 123456 is 123.456 degrees).
-							API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
-
 CM_ASSUME_NONNULL_END
 
 CF_IMPLICIT_BRIDGING_DISABLED
@@ -1362,10 +1355,7 @@
 								API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(6.0));
 CM_EXPORT const CFStringRef kCMTextFormatDescriptionExtension_DefaultFontName              // CFString
 								API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(6.0));
-CM_EXPORT const CFStringRef CM_NONNULL kCMFormatDescriptionExtension_AmbientViewingEnvironment	// CFData(8 bytes); big-endian structure; same as kCVImageBufferAmbientViewingEnvironmentKey; matches payload of ISO/IEC 23008-2:2017, D.2.39 ambient viewing environment SEI message
-								API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
-
-
+	
 CM_ASSUME_NONNULL_END
 
 /*!
diff -ruN /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSampleBuffer.h /Applications/Xcode_13.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSampleBuffer.h
--- /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSampleBuffer.h	2021-08-07 05:21:44.000000000 -0400
+++ /Applications/Xcode_13.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSampleBuffer.h	2021-08-03 21:50:58.000000000 -0400
@@ -139,13 +139,16 @@
 */
 typedef struct
 {
-	CMTime duration;				/*!< The duration of the sample. If a single struct applies to
+	CMTime duration;				/*! @field duration
+										The duration of the sample. If a single struct applies to
 										each of the samples, they all will have this duration. */
-	CMTime presentationTimeStamp;	/*!< The time at which the sample will be presented. If a single
+	CMTime presentationTimeStamp;	/*! @field presentationTimeStamp
+										The time at which the sample will be presented. If a single
 										struct applies to each of the samples, this is the presentationTime of the
 										first sample. The presentationTime of subsequent samples will be derived by
 										repeatedly adding the sample duration. */
-	CMTime decodeTimeStamp;			/*!< The time at which the sample will be decoded. If the samples
+	CMTime decodeTimeStamp;			/*! @field decodeTimeStamp
+										The time at which the sample will be decoded. If the samples
 										are in presentation order (eg. audio samples, or video samples from a codec
 										that doesn't support out-of-order samples), this can be set to kCMTimeInvalid. */
 } CMSampleTimingInfo API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(6.0));
@@ -1870,15 +1873,6 @@
 CM_EXPORT const CFStringRef kCMSampleBufferAttachmentKey_ForceKeyFrame
 							API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(6.0)); // CFBoolean
 
-/*!
-	@constant   kCMSampleAttachmentKey_CryptorSubsampleAuxiliaryData
-	@abstract   Describes the ranges of protected and unprotected data within a protected CMSampleBuffer
-	@discussion
-		The attachment is CFData containing one or more "BytesOfClearData"/"BytesOfProtectedData" pairs as appears in the 'senc' box (see ISO/IEC 23001-7 section 7.2.2). The "BytesOfClearData” field is a 16-bit integer, and the "BytesOfProtectedData” field is a 32-bit integer. Both are native endian in the CFData. This attachment is not present if the CMSampleBuffer contains unprotected content.
- */
-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.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSync.h /Applications/Xcode_13.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSync.h
--- /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSync.h	2021-08-06 23:46:53.000000000 -0400
+++ /Applications/Xcode_13.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSync.h	2021-08-03 21:50:57.000000000 -0400
@@ -3,7 +3,7 @@
  
 	Framework:  CoreMedia
  
-	Copyright © 2006-2021 Apple Inc. All rights reserved.
+	Copyright © 2006-2019 Apple Inc. All rights reserved.
  
 */
 
@@ -17,7 +17,7 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
-
+    
 #pragma pack(push, 4)
 
 CF_IMPLICIT_BRIDGING_ENABLED
@@ -26,7 +26,7 @@
 	@typedef	CMClock
 	@abstract	A timing source object.
 	@discussion
-		A clock represents a source of time information: generally, a piece of hardware that measures the passage of time.
+		A clock represents a source of time information: generally, a piece of hardware that measures the passage of time.  
 		One example of a clock is the host time clock, accessible via CMClockGetHostTimeClock().  
 		It measures time using the CPU system clock, which on Mac OS X is mach_absolute_time().
 		Every audio device can also be considered a clock since the audio samples that it outputs or inputs each have a 
@@ -44,31 +44,23 @@
 	@abstract	Models a timeline under application control.
 	@discussion
 		A timebase represents a timeline that clients can control by setting the rate and time.
-		Each timebase has either a source clock or a source timebase (previously referred to as a master clock or master timebase).
-		The rate of the timebase is expressed relative to its source.
-		When a timebase has rate 0.0, its time is fixed and does not change as its source's time changes.
-		When a timebase has rate 1.0, its time increases one second as its source's time increases by one second.
-		When a timebase has rate 2.0, its time increases two seconds as its source's time increases by one second.
-		When a timebase has rate -1.0, its time decreases one second as its source's time increases by one second.
+		Each timebase has either a master clock or a master timebase.  
+		The rate of the timebase is expressed relative to its master. 
+		When a timebase has rate 0.0, its time is fixed and does not change as its master's time changes.
+		When a timebase has rate 1.0, its time increases one second as its master's time increases by one second.
+		When a timebase has rate 2.0, its time increases two seconds as its master's time increases by one second.
+		When a timebase has rate -1.0, its time decreases one second as its master's time increases by one second.
 		
-		If a timebase has a source timebase, the source timebase's rate is a factor in determining the timebase's effective rate.
-		In fact, a timebase's effective rate is defined as the product of its rate, its source timebase's rate,
-		its source timebase's source timebase's rate, and so on up to the ultimate source clock.  This is the rate at which
-		the timebase's time changes relative to the ultimate source clock.
+		If a timebase has a master timebase, the master timebase's rate is a factor in determining the timebase's effective rate.
+		In fact, a timebase's effective rate is defined as the product of its rate, its master timebase's rate, 
+		its master timebase's master timebase's rate, and so on up to the ultimate master clock.  This is the rate at which
+		the timebase's time changes relative to the ultimate master clock.
 */
 
 typedef struct CM_BRIDGED_TYPE(id) OpaqueCMTimebase* CMTimebaseRef API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(6.0)); // a CF type; use CFRetain and CFRelease
 
 typedef CM_BRIDGED_TYPE(id) CFTypeRef CMClockOrTimebaseRef API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(6.0)); // used in argument lists and function results to indicate that either may be passed
 
-#ifndef CMTIMEBASE_USE_SOURCE_TERMINOLOGY
-#if (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= __MAC_12_0) || (__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= __IPHONE_15_0) || (__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__ >= __TVOS_15_0) || (__ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__ >= __WATCHOS_8_0) || 0
-#define CMTIMEBASE_USE_SOURCE_TERMINOLOGY 1 // When using the SDK that includes this header file, apps may adopt the newer terminology and continue to deploy to prior OS versions.
-#else
-#define CMTIMEBASE_USE_SOURCE_TERMINOLOGY 0 // Prior to 2021, the source clock or source timebase was referred to as a master clock or master timebase.
-#endif
-#endif
-
 
 // CMClock error codes
 #if COREMEDIA_USE_DERIVED_ENUMS_FOR_CONSTANTS
@@ -160,7 +152,7 @@
 	@abstract	Retrieves the current time from a clock.
 */
 CM_EXPORT CMTime
-CMClockGetTime(
+CMClockGetTime( 
 		CMClockRef CM_NONNULL clock )
 	API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(6.0));
 
@@ -170,7 +162,7 @@
 	@discussion	To make practical use of this, you may need to know what the clock's reference clock is.
 */
 CM_EXPORT OSStatus
-CMClockGetAnchorTime(
+CMClockGetAnchorTime( 
 		CMClockRef CM_NONNULL clock,
 		CMTime * CM_NONNULL clockTimeOut,
 		CMTime * CM_NONNULL referenceClockTimeOut )
@@ -211,344 +203,164 @@
 CF_IMPLICIT_BRIDGING_DISABLED
 
 /*!
-	@function	CMTimebaseCreateWithSourceClock
-	@abstract	Creates a timebase driven by the given clock.
+	@function	CMTimebaseCreateWithMasterClock
+	@abstract	Creates a timebase driven by the given clock.  
 	@discussion
 		The timebase will initially have rate zero and time zero.
-		Pass CMClockGetHostTimeClock() for sourceClock to have the host time clock drive this timebase.
+		Pass CMClockGetHostTimeClock() for masterClock to have the host time clock drive this timebase.
 */
-#if CMTIMEBASE_USE_SOURCE_TERMINOLOGY
-CM_EXPORT OSStatus
-CMTimebaseCreateWithSourceClock(
-		CFAllocatorRef CM_NULLABLE allocator,
-		CMClockRef CM_NONNULL sourceClock,
-		CM_RETURNS_RETAINED_PARAMETER CMTimebaseRef CM_NULLABLE * CM_NONNULL timebaseOut )
-			API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(6.0));
-
-static inline OSStatus
-CMTimebaseCreateWithMasterClock(
-		CFAllocatorRef CM_NULLABLE allocator,
-		CMClockRef CM_NONNULL masterClock,
-		CM_RETURNS_RETAINED_PARAMETER CMTimebaseRef CM_NULLABLE * CM_NONNULL timebaseOut )
-			API_DEPRECATED_WITH_REPLACEMENT("CMTimebaseCreateWithSourceClock", macos(10.8,10.10), ios(6.0,8.0), tvos(9.0,9.0), watchos(6.0,6.0))
-{
-	return CMTimebaseCreateWithSourceClock(allocator, masterClock, timebaseOut);
-}
-#else
 CM_EXPORT OSStatus
-CMTimebaseCreateWithMasterClock(
+CMTimebaseCreateWithMasterClock( 
 		CFAllocatorRef CM_NULLABLE allocator,
 		CMClockRef CM_NONNULL masterClock,
 		CM_RETURNS_RETAINED_PARAMETER CMTimebaseRef CM_NULLABLE * CM_NONNULL timebaseOut )
-			API_DEPRECATED_WITH_REPLACEMENT("CMTimebaseCreateWithSourceClock", macos(10.8,10.10), ios(6.0,8.0), tvos(9.0,9.0), watchos(6.0,6.0));
-static inline OSStatus
-CMTimebaseCreateWithSourceClock(
-		CFAllocatorRef CM_NULLABLE allocator,
-		CMClockRef CM_NONNULL sourceClock,
-		CM_RETURNS_RETAINED_PARAMETER CMTimebaseRef CM_NULLABLE * CM_NONNULL timebaseOut )
-			API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(6.0))
-{
-	return CMTimebaseCreateWithMasterClock(allocator, sourceClock, timebaseOut);
-}
-#endif
+			API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(6.0));
 
 /*!
-	@function	CMTimebaseCreateWithSourceTimebase
-	@abstract	Creates a timebase driven by the given source timebase.
+	@function	CMTimebaseCreateWithMasterTimebase
+	@abstract	Creates a timebase driven by the given master timebase.  
 	@discussion
 		The timebase will initially have rate zero and time zero.
 */
-#if CMTIMEBASE_USE_SOURCE_TERMINOLOGY
 CM_EXPORT OSStatus
-CMTimebaseCreateWithSourceTimebase(
-		CFAllocatorRef CM_NULLABLE allocator,
-		CMTimebaseRef CM_NONNULL sourceTimebase,
-		CM_RETURNS_RETAINED_PARAMETER CMTimebaseRef CM_NULLABLE * CM_NONNULL timebaseOut )
-			API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(6.0));
-
-static inline OSStatus
-CMTimebaseCreateWithMasterTimebase(
+CMTimebaseCreateWithMasterTimebase( 
 		CFAllocatorRef CM_NULLABLE allocator,
 		CMTimebaseRef CM_NONNULL masterTimebase,
 		CM_RETURNS_RETAINED_PARAMETER CMTimebaseRef CM_NULLABLE * CM_NONNULL timebaseOut )
-			API_DEPRECATED_WITH_REPLACEMENT("CMTimebaseCreateWithSourceTimebase", macos(10.8,10.10), ios(6.0,8.0), tvos(9.0,9.0), watchos(6.0,6.0))
-{
-	return CMTimebaseCreateWithSourceTimebase(allocator, masterTimebase, timebaseOut);
-}
-#else
-CM_EXPORT OSStatus
-CMTimebaseCreateWithMasterTimebase(
-		CFAllocatorRef CM_NULLABLE allocator,
-		CMTimebaseRef CM_NONNULL masterTimebase,
-		CM_RETURNS_RETAINED_PARAMETER CMTimebaseRef CM_NULLABLE * CM_NONNULL timebaseOut )
-			API_DEPRECATED_WITH_REPLACEMENT("CMTimebaseCreateWithSourceTimebase", macos(10.8,10.10), ios(6.0,8.0), tvos(9.0,9.0), watchos(6.0,6.0));
-static inline OSStatus
-CMTimebaseCreateWithSourceTimebase(
-		CFAllocatorRef CM_NULLABLE allocator,
-		CMTimebaseRef CM_NONNULL sourceTimebase,
-		CM_RETURNS_RETAINED_PARAMETER CMTimebaseRef CM_NULLABLE * CM_NONNULL timebaseOut )
-			API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(6.0))
-{
-	return CMTimebaseCreateWithMasterTimebase(allocator, sourceTimebase, timebaseOut);
-}
-#endif
+			API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(6.0));
 
 CF_IMPLICIT_BRIDGING_ENABLED
 
 /*!
-	@function	CMTimebaseCopySourceTimebase
-	@abstract	Returns the immediate source timebase of a timebase.
+	@function	CMTimebaseCopyMasterTimebase
+	@abstract	Returns the immediate master timebase of a timebase.
 	@discussion
-		Returns NULL if the timebase actually has a source clock instead of a source timebase.
+		Returns NULL if the timebase actually has a master clock instead of a master timebase.
 */
-#if CMTIMEBASE_USE_SOURCE_TERMINOLOGY
 CM_EXPORT CMTimebaseRef CM_NULLABLE
-CMTimebaseCopySourceTimebase(
-		CMTimebaseRef CM_NONNULL timebase )
-			API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(6.0));
-static inline CMTimebaseRef CM_NULLABLE
 CMTimebaseCopyMasterTimebase(
 		CMTimebaseRef CM_NONNULL timebase )
-			API_DEPRECATED_WITH_REPLACEMENT("CMTimebaseCopySourceTimebase", macos(10.11,10.11), ios(9.0,9.0), tvos(9.0,9.0), watchos(6.0,6.0))
-{
-	return CMTimebaseCopySourceTimebase(timebase);
-}
-#else
-CM_EXPORT CMTimebaseRef CM_NULLABLE
-CMTimebaseCopyMasterTimebase(
-		CMTimebaseRef CM_NONNULL timebase )
-			API_DEPRECATED_WITH_REPLACEMENT("CMTimebaseCopySourceTimebase", macos(10.11,10.11), ios(9.0,9.0), tvos(9.0,9.0), watchos(6.0,6.0));
-static inline CMTimebaseRef CM_NULLABLE
-CMTimebaseCopySourceTimebase(
-		CMTimebaseRef CM_NONNULL timebase )
-			API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(6.0))
-{
-	return CMTimebaseCopyMasterTimebase(timebase);
-}
-#endif
+			API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(6.0));
 
 /*!
-	@function	CMTimebaseCopySourceClock
-	@abstract	Returns the immediate source clock of a timebase.
+	@function	CMTimebaseCopyMasterClock
+	@abstract	Returns the immediate master clock of a timebase.  
 	@discussion
-		Returns NULL if the timebase actually has a source timebase instead of a source clock.
+		Returns NULL if the timebase actually has a master timebase instead of a master clock.
 */
-#if CMTIMEBASE_USE_SOURCE_TERMINOLOGY
-CM_EXPORT CMClockRef CM_NULLABLE
-CMTimebaseCopySourceClock(
-		CMTimebaseRef CM_NONNULL timebase )
-			API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(6.0));
-static inline CMClockRef CM_NULLABLE
-CMTimebaseCopyMasterClock(
-		CMTimebaseRef CM_NONNULL timebase )
-			API_DEPRECATED_WITH_REPLACEMENT("CMTimebaseCopySourceClock", macos(10.11,10.11), ios(9.0,9.0), tvos(9.0,9.0), watchos(6.0,6.0))
-{
-	return CMTimebaseCopySourceClock(timebase);
-}
-#else
 CM_EXPORT CMClockRef CM_NULLABLE
 CMTimebaseCopyMasterClock(
 		CMTimebaseRef CM_NONNULL timebase )
-			API_DEPRECATED_WITH_REPLACEMENT("CMTimebaseCopySourceClock", macos(10.11,10.11), ios(9.0,9.0), tvos(9.0,9.0), watchos(6.0,6.0));
-static inline CMClockRef CM_NULLABLE
-CMTimebaseCopySourceClock(
-		CMTimebaseRef CM_NONNULL timebase )
-			API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(6.0))
-{
-	return CMTimebaseCopyMasterClock(timebase);
-}
-#endif
+			API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(6.0));
 
 /*!
-	@function	CMTimebaseCopySource
-	@abstract	Returns the immediate source (either timebase or clock) of a timebase.
+	@function	CMTimebaseCopyMaster
+	@abstract	Returns the immediate master (either timebase or clock) of a timebase.  
 	@discussion
 		Only returns NULL if there was an error (such as timebase == NULL).
 */
-#if CMTIMEBASE_USE_SOURCE_TERMINOLOGY
-CM_EXPORT CMClockOrTimebaseRef CM_NONNULL
-CMTimebaseCopySource(
-		CMTimebaseRef CM_NONNULL timebase )
-			API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(6.0));
-static inline CMClockOrTimebaseRef CM_NONNULL
-CMTimebaseCopyMaster(
-		CMTimebaseRef CM_NONNULL timebase )
-			API_DEPRECATED_WITH_REPLACEMENT("CMTimebaseCopySource", macos(10.11,10.11), ios(9.0,9.0), tvos(9.0,9.0), watchos(6.0,6.0))
-{
-	return CMTimebaseCopySource(timebase);
-}
-#else
 CM_EXPORT CMClockOrTimebaseRef CM_NONNULL
 CMTimebaseCopyMaster(
 		CMTimebaseRef CM_NONNULL timebase )
-			API_DEPRECATED_WITH_REPLACEMENT("CMTimebaseCopySource", macos(10.11,10.11), ios(9.0,9.0), tvos(9.0,9.0), watchos(6.0,6.0));
-static inline CMClockOrTimebaseRef CM_NONNULL
-CMTimebaseCopySource(
-		CMTimebaseRef CM_NONNULL timebase )
-			API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(6.0))
-{
-	return CMTimebaseCopyMaster(timebase);
-}
-#endif
+			API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(6.0));
 
 /*!
-	@function	CMTimebaseCopyUltimateSourceClock
-	@abstract	Returns the source clock that is the source of all of a timebase's source timebases.
+	@function	CMTimebaseCopyUltimateMasterClock
+	@abstract	Returns the master clock that is the master of all of a timebase's master timebases.
 */
-#if CMTIMEBASE_USE_SOURCE_TERMINOLOGY
 CM_EXPORT CMClockRef CM_NONNULL
-CMTimebaseCopyUltimateSourceClock(
-		CMTimebaseRef CM_NONNULL timebase )
-			API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(6.0));
-static inline CMClockRef CM_NONNULL
 CMTimebaseCopyUltimateMasterClock(
 		CMTimebaseRef CM_NONNULL timebase )
-			API_DEPRECATED_WITH_REPLACEMENT("CMTimebaseCopyUltimateSourceClock", macos(10.11,10.11), ios(9.0,9.0), tvos(9.0,9.0), watchos(6.0,6.0))
-{
-	return CMTimebaseCopyUltimateSourceClock(timebase);
-}
-#else
-CM_EXPORT CMClockRef CM_NONNULL
-CMTimebaseCopyUltimateMasterClock(
-		CMTimebaseRef CM_NONNULL timebase )
-			API_DEPRECATED_WITH_REPLACEMENT("CMTimebaseCopyUltimateSourceClock", macos(10.11,10.11), ios(9.0,9.0), tvos(9.0,9.0), watchos(6.0,6.0));
-static inline CMClockRef CM_NONNULL
-CMTimebaseCopyUltimateSourceClock(
-		CMTimebaseRef CM_NONNULL timebase )
-			API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(6.0))
-{
-	return CMTimebaseCopyUltimateMasterClock(timebase);
-}
-#endif
-
+			API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(6.0));
+		
 /*!
 	@function	CMTimebaseGetMasterTimebase
-	@abstract	Returns the immediate source timebase of a timebase.
+	@abstract	Returns the immediate master timebase of a timebase.
 	@discussion
-		Returns NULL if the timebase actually has a source clock instead of a source timebase.
-		Please use CMTimebaseCopySourceTimebase instead.
+		Returns NULL if the timebase actually has a master clock instead of a master timebase.
+		Please use CMTimebaseCopyMasterTimebase instead.
 */
 CM_EXPORT CMTimebaseRef CM_NULLABLE
 CMTimebaseGetMasterTimebase(
 		CMTimebaseRef CM_NONNULL timebase )
-			API_DEPRECATED_WITH_REPLACEMENT("CMTimebaseCopySourceTimebase", macos(10.8, 10.11), ios(6.0, 9.0), tvos(9.0, 9.0)) API_UNAVAILABLE(watchos);
+			API_DEPRECATED_WITH_REPLACEMENT("CMTimebaseCopyMasterTimebase", macos(10.8, 10.11), ios(6.0, 9.0), tvos(9.0, 9.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@function	CMTimebaseGetMasterClock
-	@abstract	Returns the immediate source clock of a timebase.
+	@abstract	Returns the immediate master clock of a timebase.  
 	@discussion
-		Returns NULL if the timebase actually has a source timebase instead of a source clock.
-		Please use CMTimebaseCopySourceClock instead.
+		Returns NULL if the timebase actually has a master timebase instead of a master clock.
+		Please use CMTimebaseCopyMasterClock instead.
 */
 CM_EXPORT CMClockRef CM_NULLABLE
 CMTimebaseGetMasterClock(
 		CMTimebaseRef CM_NONNULL timebase )
-			API_DEPRECATED_WITH_REPLACEMENT("CMTimebaseCopySourceClock", macos(10.8, 10.11), ios(6.0, 9.0), tvos(9.0, 9.0)) API_UNAVAILABLE(watchos);
+			API_DEPRECATED_WITH_REPLACEMENT("CMTimebaseCopyMasterClock", macos(10.8, 10.11), ios(6.0, 9.0), tvos(9.0, 9.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@function	CMTimebaseGetMaster
-	@abstract	Returns the immediate source (either timebase or clock) of a timebase.
+	@abstract	Returns the immediate master (either timebase or clock) of a timebase.  
 	@discussion
 		Only returns NULL if there was an error (such as timebase == NULL).
 		Example of use: time = CMSyncGetTime(CMTimebaseGetMaster(timebase));
-		Please use CMTimebaseCopySource instead.
+		Please use CMTimebaseCopyMaster instead.
 */
 CM_EXPORT CMClockOrTimebaseRef CM_NULLABLE
 CMTimebaseGetMaster(
 		CMTimebaseRef CM_NONNULL timebase )
-			API_DEPRECATED_WITH_REPLACEMENT("CMTimebaseCopySource", macos(10.8, 10.11), ios(6.0, 9.0), tvos(9.0, 9.0)) API_UNAVAILABLE(watchos);
+			API_DEPRECATED_WITH_REPLACEMENT("CMTimebaseCopyMaster", macos(10.8, 10.11), ios(6.0, 9.0), tvos(9.0, 9.0)) API_UNAVAILABLE(watchos);
 
 /*!
 	@function	CMTimebaseGetUltimateMasterClock
-	@abstract	Returns the source clock that is the source of all of a timebase's source timebases.
+	@abstract	Returns the master clock that is the master of all of a timebase's master timebases.
 	@discussion
-		Please use CMTimebaseCopyUltimateSourceClock instead.
+		Please use CMTimebaseCopyUltimateMasterClock instead.
 */
 CM_EXPORT CMClockRef CM_NULLABLE
 CMTimebaseGetUltimateMasterClock(
 		CMTimebaseRef CM_NONNULL timebase )
-			API_DEPRECATED_WITH_REPLACEMENT("CMTimebaseCopyUltimateSourceClock", macos(10.8, 10.11), ios(6.0, 9.0), tvos(9.0, 9.0)) API_UNAVAILABLE(watchos);
+			API_DEPRECATED_WITH_REPLACEMENT("CMTimebaseCopyUltimateMasterClock", macos(10.8, 10.11), ios(6.0, 9.0), tvos(9.0, 9.0)) API_UNAVAILABLE(watchos);
 
 /*!
-	@function	CMTimebaseSetSourceClock
+	@function	0
 	@abstract
-		Sets the source clock of a timebase.
+		Sets the master clock of a timebase.
 	@discussion
-		The timebase will stop receiving timing information from its current source clock or source
-		timebase, and will begin receiving timing information from the new source clock.  Prior to
-		the change a kCMTimebaseNotification_SourceWillChange will be posted.  When
-		the change has completed, a kCMTimebaseNotification_SourceDidChange notification
-		will be posted.
+		The timebase will stop being mastered by its current master clock or master
+		timebase, and will change to be mastered by the new master clock.  Prior to
+		the change a kCMTimebaseNotification_MasterWillChange will be posted.  When
+		the change has completed, a kCMTimebaseNotification_MasterDidChange notification
+		will be posted.  The current master clock or master timebase of the timebase
+		being modified will be released.
 */
-#if CMTIMEBASE_USE_SOURCE_TERMINOLOGY
-CM_EXPORT OSStatus CMTimebaseSetSourceClock(
-		CMTimebaseRef CM_NONNULL timebase,
-		CMClockRef CM_NONNULL newSourceClock)
-			API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(6.0));
-static inline OSStatus CMTimebaseSetMasterClock(
-		CMTimebaseRef CM_NONNULL timebase,
-		CMClockRef CM_NONNULL newMasterClock)
-			API_DEPRECATED_WITH_REPLACEMENT("CMTimebaseSetSourceClock", macos(10.8,10.10), ios(6.0,8.0), tvos(9.0,9.0), watchos(6.0,6.0))
-{
-	return CMTimebaseSetSourceClock(timebase, newMasterClock);
-}
-#else
 CM_EXPORT OSStatus CMTimebaseSetMasterClock(
 		CMTimebaseRef CM_NONNULL timebase,
 		CMClockRef CM_NONNULL newMasterClock)
-			API_DEPRECATED_WITH_REPLACEMENT("CMTimebaseSetSourceClock", macos(10.8,10.10), ios(6.0,8.0), tvos(9.0,9.0), watchos(6.0,6.0));
-static inline OSStatus CMTimebaseSetSourceClock(
-		CMTimebaseRef CM_NONNULL timebase,
-		CMClockRef CM_NONNULL newSourceClock)
-			API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(6.0))
-{
-	return CMTimebaseSetMasterClock(timebase, newSourceClock);
-}
-#endif
+			API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(6.0));
 
 /*!
-	@function	CMTimebaseSetSourceTimebase
+	@function	CMTimebaseSetMasterTimebase
 	@abstract
-		Sets the source timebase of a timebase.
+		Sets the master timebase of a timebase.
 	@discussion
-		The timebase will stop receiving timing information from its current source clock or source
-		timebase, and will begin receiving timing information from the new source timebase.  Prior to
-		the change a kCMTimebaseNotification_SourceWillChange will be posted.  When
-		the change has completed, a kCMTimebaseNotification_SourceDidChange notification
-		will be posted.
+		The timebase will stop being mastered by its current master clock or master
+		timebase, and will change to be mastered by the new master timebase.  Prior to
+		the change a kCMTimebaseNotification_MasterWillChange will be posted.  When
+		the change has completed, a kCMTimebaseNotification_MasterDidChange notification
+		will be posted.  The current master clock or master timebase of the timebase
+		being modified will be released.
 */
-#if CMTIMEBASE_USE_SOURCE_TERMINOLOGY
-CM_EXPORT OSStatus CMTimebaseSetSourceTimebase(
-		CMTimebaseRef CM_NONNULL timebase,
-		CMTimebaseRef CM_NONNULL newSourceTimebase)
-			API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(6.0));
-static inline OSStatus CMTimebaseSetMasterTimebase(
-		CMTimebaseRef CM_NONNULL timebase,
-		CMTimebaseRef CM_NONNULL newMasterTimebase)
-			API_DEPRECATED_WITH_REPLACEMENT("CMTimebaseSetSourceTimebase", macos(10.8,10.10), ios(6.0,8.0), tvos(9.0,9.0), watchos(6.0,6.0))
-{
-	return CMTimebaseSetSourceTimebase(timebase, newMasterTimebase);
-}
-#else
 CM_EXPORT OSStatus CMTimebaseSetMasterTimebase(
 		CMTimebaseRef CM_NONNULL timebase,
 		CMTimebaseRef CM_NONNULL newMasterTimebase)
-			API_DEPRECATED_WITH_REPLACEMENT("CMTimebaseSetSourceTimebase", macos(10.8,10.10), ios(6.0,8.0), tvos(9.0,9.0), watchos(6.0,6.0));
-static inline OSStatus CMTimebaseSetSourceTimebase(
-		CMTimebaseRef CM_NONNULL timebase,
-		CMTimebaseRef CM_NONNULL newSourceTimebase)
-			API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(6.0))
-{
-	return CMTimebaseSetMasterTimebase(timebase, newSourceTimebase);
-}
-#endif
+			API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(6.0));
 
 /*!
 	@function	CMTimebaseGetTime
 	@abstract	Retrieves the current time from a timebase.
 */
 CM_EXPORT CMTime
-CMTimebaseGetTime(
+CMTimebaseGetTime( 
 		CMTimebaseRef CM_NONNULL timebase )
 			API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(6.0));
 
@@ -575,27 +387,27 @@
 
 /*!
 	@function	CMTimebaseSetAnchorTime
-	@abstract	Sets the time of a timebase at a particular source time.
+	@abstract	Sets the time of a timebase at a particular master time.
 	@discussion
 		CMTimebaseGetTime's results will be interpolated from that anchor time.
 		CMTimebaseSetTime(timebase, time) is equivalent to calling
-			CMClockOrTimebaseRef source = CMTimebaseCopySource(timebase);
-			CMTimebaseSetAnchorTime(timebase, time, CMSyncGetTime(source));
-			CFRelease(source).
+			CMClockOrTimebaseRef master = CMTimebaseCopyMaster(timebase);
+			CMTimebaseSetAnchorTime(timebase, time, CMSyncGetTime(master));
+			CFRelease(master).
 */
 CM_EXPORT OSStatus
 CMTimebaseSetAnchorTime(
 		CMTimebaseRef CM_NONNULL timebase,
 		CMTime timebaseTime,
-		CMTime immediateSourceTime)
+		CMTime immediateMasterTime)
 			API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(6.0));
 
 /*!
 	@function	CMTimebaseGetRate
 	@abstract	Retrieves the current rate of a timebase.  
 	@discussion
-		This is the rate relative to its immediate source clock or timebase.  
-		For example, if a timebase is running at twice the rate of its source, its rate is 2.0.
+		This is the rate relative to its immediate master clock or timebase.  
+		For example, if a timebase is running at twice the rate of its master, its rate is 2.0.
 */
 CM_EXPORT Float64 
 CMTimebaseGetRate( 
@@ -628,14 +440,14 @@
 		
 /*!
 	@function	CMTimebaseSetRateAndAnchorTime
-	@abstract	Sets the time of a timebase at a particular source time, and changes the rate at exactly that time.
+	@abstract	Sets the time of a timebase at a particular master time, and changes the rate at exactly that time.
 	@discussion
 		CMTimebaseGetTime's results will be interpolated from that anchor time as though the timebase 
 		has been running at the requested rate since that time.
 		CMTimebaseSetRate(timebase, rate) is approximately equivalent to calling
-			CMClockOrTimebaseRef source = CMTimebaseCopySource(timebase);
-			CMTimebaseSetRateAndAnchorTime(timebase, rate, CMTimebaseGetTime(timebase), CMSyncGetTime(source)),
-			CFRelease(source);
+			CMClockOrTimebaseRef master = CMTimebaseCopyMaster(timebase);
+			CMTimebaseSetRateAndAnchorTime(timebase, rate, CMTimebaseGetTime(timebase), CMSyncGetTime(master)),
+			CFRelease(master);
 		except that CMTimebaseSetRate will not generate a TimeJumped notification, and
 		CMTimebaseSetRateAndAnchorTime will.
 */
@@ -644,15 +456,15 @@
 		CMTimebaseRef CM_NONNULL timebase,
 		Float64 rate,
 		CMTime timebaseTime,
-		CMTime immediateSourceTime)
+		CMTime immediateMasterTime)
 			API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(6.0));
 
 /*!
 	@function	CMTimebaseGetEffectiveRate
-	@abstract	Gets the effective rate of a timebase (which combines its rate with the rates of all its source timebases).
+	@abstract	Gets the effective rate of a timebase (which combines its rate with the rates of all its master timebases).
 	@discussion
 		Calling CMTimebaseGetEffectiveRate(timebase) is equivalent to calling
-			CMClockRef clock = CMTimebaseCopyUltimateSourceClock(timebase);
+			CMClockRef clock = CMTimebaseCopyUltimateMasterClock(timebase);
 			CMSyncGetRelativeRate(timebase, clock).
 			CFRelease(clock);
 */
@@ -834,13 +646,13 @@
 	@function	CMSyncGetRelativeRate
 	@abstract	Queries the relative rate of one timebase or clock relative to another timebase or clock.
 	@discussion
-		If both have a common source, this calculation is performed purely based on the rates in the common tree 
-		rooted in that source.  
-		If they have different source clocks (or are both clocks), this calculation takes into account the measured
+		If both have a common master, this calculation is performed purely based on the rates in the common tree 
+		rooted in that master.  
+		If they have different master clocks (or are both clocks), this calculation takes into account the measured
 		drift between the two clocks, using host time as a pivot.
 		The rate of a moving timebase relative to a stopped timebase is a NaN.
 		Calling CMTimebaseGetEffectiveRate(timebase) is equivalent to calling
-			CMClockRef clock = CMTimebaseCopyUltimateSourceClock(timebase);
+			CMClockRef clock = CMTimebaseCopyUltimateMasterClock(timebase);
 			CMSyncGetRelativeRate(timebase, clock).
 			CFRelease(clock);
 */
@@ -854,9 +666,9 @@
 	@function	CMSyncGetRelativeRateAndAnchorTime
 	@abstract	Queries the relative rate of one timebase or clock relative to another timebase or clock and the times of each timebase or clock at which the relative rate went into effect.
 	@discussion
-		If both have a common source, this calculation is performed purely based on the rates in the common tree
-		rooted in that source.  
-		If they have different source clocks (or are both clocks), this calculation takes into account the measured
+		If both have a common master, this calculation is performed purely based on the rates in the common tree
+		rooted in that master.  
+		If they have different master clocks (or are both clocks), this calculation takes into account the measured
 		drift between the two clocks, using host time as a pivot.
 		The rate of a moving timebase relative to a stopped timebase is a NaN.
 */
@@ -873,9 +685,9 @@
 	@function	CMSyncConvertTime
 	@abstract	Converts a time from one timebase or clock to another timebase or clock.
 	@discussion
-		If both have a common source, this calculation is performed purely based on the mathematical rates and offsets 
-		in the common tree rooted in that source.  
-		If they have different source clocks (or are both clocks), this calculation also compensates
+		If both have a common master, this calculation is performed purely based on the mathematical rates and offsets 
+		in the common tree rooted in that master.  
+		If they have different master clocks (or are both clocks), this calculation also compensates
 		for measured drift between the clocks.
 		To convert to or from host time, pass CMClockGetHostTimeClock() as the appropriate argument.
 */
@@ -890,7 +702,7 @@
 	@function	CMSyncMightDrift
 	@abstract	Reports whether it is possible for one timebase/clock to drift relative to the other.
 	@discussion
-		A timebase can drift relative to another if their ultimate source clocks that can drift relative
+		A timebase can drift relative to another if they are ultimately mastered by clocks that can drift relative
 		to each other.
 */
 CM_EXPORT Boolean
@@ -905,9 +717,9 @@
 	@discussion
 		CMSyncGetTime simply calls either CMClockGetTime or CMTimebaseGetTime, as appropriate.
 		It comes in handy for things like:
-			CMClockOrTimebaseRef source = CMTimebaseCopySource(timebase);
-			CMSyncGetTime(source);
-			CFRelease(source);
+			CMClockOrTimebaseRef master = CMTimebaseCopyMaster(timebase);
+			CMSyncGetTime(master);
+			CFRelease(master);
 */
 CM_EXPORT CMTime
 CMSyncGetTime(
diff -ruN /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMTime.h /Applications/Xcode_13.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMTime.h
--- /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMTime.h	2021-08-06 23:45:01.000000000 -0400
+++ /Applications/Xcode_13.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMTime.h	2021-08-03 21:50:58.000000000 -0400
@@ -88,14 +88,14 @@
 */
 typedef struct
 {
-	CMTimeValue	value;		/*!< The value of the CMTime. value/timescale = seconds */
-	CMTimeScale	timescale;	/*!< The timescale of the CMTime. value/timescale = seconds. */
-	CMTimeFlags	flags;		/*!< The flags, eg. kCMTimeFlags_Valid, kCMTimeFlags_PositiveInfinity, etc. */
-	CMTimeEpoch	epoch;		/*!< Differentiates between equal timestamps that are actually different because
-								of looping, multi-item sequencing, etc.
-								Will be used during comparison: greater epochs happen after lesser ones.
-								Additions/subtraction is only possible within a single epoch,
-								however, since epoch length may be unknown/variable */
+	CMTimeValue	value;		/*! @field value The value of the CMTime. value/timescale = seconds. */
+	CMTimeScale	timescale;	/*! @field timescale The timescale of the CMTime. value/timescale = seconds.  */
+	CMTimeFlags	flags;		/*! @field flags The flags, eg. kCMTimeFlags_Valid, kCMTimeFlags_PositiveInfinity, etc. */
+	CMTimeEpoch	epoch;		/*! @field epoch Differentiates between equal timestamps that are actually different because
+												 of looping, multi-item sequencing, etc.  
+												 Will be used during comparison: greater epochs happen after lesser ones. 
+												 Additions/subtraction is only possible within a single epoch,
+												 however, since epoch length may be unknown/variable. */
 } CMTime API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(6.0));
 
 /*!
diff -ruN /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMTimeRange.h /Applications/Xcode_13.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMTimeRange.h
--- /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMTimeRange.h	2021-08-09 03:22:20.000000000 -0400
+++ /Applications/Xcode_13.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMTimeRange.h	2021-08-03 21:50:57.000000000 -0400
@@ -50,8 +50,8 @@
 */
 typedef struct
 {
-	CMTime			start;		/*!< The start time of the time range. */
-	CMTime			duration;	/*!< The duration of the time range. */
+	CMTime			start;		/*! @field start The start time of the time range. */
+	CMTime			duration;	/*! @field duration The duration of the time range. */
 } CMTimeRange API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(6.0));
 
 /*!
diff -ruN /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CoreMedia.apinotes /Applications/Xcode_13.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CoreMedia.apinotes
--- /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CoreMedia.apinotes	2021-08-05 00:54:27.000000000 -0400
+++ /Applications/Xcode_13.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CoreMedia.apinotes	2021-03-16 04:44:10.000000000 -0400
@@ -389,18 +389,6 @@
   SwiftName: "CMClockInvalidate(_:)"
 - Name: CMTimebaseGetTypeID
   SwiftName: "CMTimebaseGetTypeID()"
-- Name: CMTimebaseCreateWithSourceClock
-  SwiftName: "CMTimebaseCreateWithSourceClock(allocator:sourceClock:timebaseOut:)"
-- Name: CMTimebaseCreateWithSourceTimebase
-  SwiftName: "CMTimebaseCreateWithSourceTimebase(allocator:sourceTimebase:timebaseOut:)"
-- Name: CMTimebaseCopySourceTimebase
-  SwiftName: "CMTimebaseCopySourceTimebase(_:)"
-- Name: CMTimebaseCopySourceClock
-  SwiftName: "CMTimebaseCopySourceClock(_:)"
-- Name: CMTimebaseCopySource
-  SwiftName: "CMTimebaseCopySource(_:)"
-- Name: CMTimebaseCopyUltimateSourceClock
-  SwiftName: "CMTimebaseCopyUltimateSourceClock(_:)"
 - Name: CMTimebaseCreateWithMasterClock
   SwiftName: "CMTimebaseCreateWithMasterClock(allocator:masterClock:timebaseOut:)"
 - Name: CMTimebaseCreateWithMasterTimebase
@@ -420,7 +408,7 @@
 - Name: CMTimebaseSetTime
   SwiftName: "CMTimebaseSetTime(_:time:)"
 - Name: CMTimebaseSetAnchorTime
-  SwiftName: "CMTimebaseSetAnchorTime(_:timebaseTime:immediateSourceTime:)"
+  SwiftName: "CMTimebaseSetAnchorTime(_:timebaseTime:immediateMasterTime:)"
 - Name: CMTimebaseGetRate
   SwiftName: "CMTimebaseGetRate(_:)"
 - Name: CMTimebaseGetTimeAndRate
@@ -428,7 +416,7 @@
 - Name: CMTimebaseSetRate
   SwiftName: "CMTimebaseSetRate(_:rate:)"
 - Name: CMTimebaseSetRateAndAnchorTime
-  SwiftName: "CMTimebaseSetRateAndAnchorTime(_:rate:anchorTime:immediateSourceTime:)"
+  SwiftName: "CMTimebaseSetRateAndAnchorTime(_:rate:anchorTime:immediateMasterTime:)"
 - Name: CMTimebaseGetEffectiveRate
   SwiftName: "CMTimebaseGetEffectiveRate(_:)"
 - Name: CMTimebaseAddTimer
diff -ruN /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CoreMedia.h /Applications/Xcode_13.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CoreMedia.h
--- /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CoreMedia.h	2021-08-02 02:00:36.000000000 -0400
+++ /Applications/Xcode_13.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CoreMedia.h	2021-03-16 04:44:10.000000000 -0400
@@ -23,7 +23,7 @@
 #include <CoreMedia/CMSync.h>
 #include <CoreMedia/CMTextMarkup.h>
 #include <CoreMedia/CMMetadata.h>
-#if ! TARGET_OS_WINDOWS
+#if ! 0
 #include <CoreMedia/CMAudioClock.h>
 #endif
 #if ! TARGET_OS_IPHONE
Clone this wiki locally