Skip to content

AVFoundation iOS xcode26.4 b2

Rolf Bjarne Kvinge edited this page Feb 27, 2026 · 1 revision

#AVFoundation.framework

diff -ruN /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetDownloadTask.h /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetDownloadTask.h
--- /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetDownloadTask.h	2025-11-13 05:47:23
+++ /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetDownloadTask.h	2026-02-15 17:40:10
@@ -129,7 +129,7 @@
 /// Download interstitial assets as listed in the index file. False by default.
 /// 
 /// Ordinarily, interstitial assets are skipped when downloading content for later playback. Setting this property to true will cause interstitial assets to be downloaded as well. Playback of the downloaded content can then match the experience of online streaming playback as closely as possible.
-@property (nonatomic) BOOL downloadsInterstitialAssets API_UNAVAILABLE(macos, ios, tvos, watchos, visionos);
+@property (nonatomic) BOOL downloadsInterstitialAssets API_AVAILABLE(macos(15.0), ios(18.0), watchos(11.0), visionos(2.0)) API_UNAVAILABLE(tvos);
 
 /// Sets media selection on interstitials for this asset
 /// 
diff -ruN /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionRenderer.h /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionRenderer.h
--- /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionRenderer.h	2025-11-16 02:51:54
+++ /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionRenderer.h	2026-02-15 17:21:17
@@ -9,8 +9,6 @@
 */
 
 #import <AVFoundation/AVBase.h>
-#if ( TARGET_OS_OSX || ( TARGET_OS_IOS && ! TARGET_OS_VISION ) )
-
 #import <Foundation/Foundation.h>
 #import <AVFoundation/AVCaption.h>
 #import <QuartzCore/QuartzCore.h>
@@ -31,13 +29,15 @@
 	An instance of AVCaptionRenderer performs drawing of a caption "scene" from a population of captions given a time. If there are no captions or no captions at the specified time, "emptiness" will still be drawn (e.g., flood filling with zero alpha or a color).
  */
 NS_SWIFT_NONSENDABLE
-API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos)
+API_AVAILABLE(macos(12.0), ios(18.0), tvos(26.4), visionos(26.4), macCatalyst(15.0)) API_UNAVAILABLE(watchos)
 @interface AVCaptionRenderer : NSObject
 {
 @private
 	AVCaptionRendererInternal * _internal;
 }
 
+- (instancetype)init API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos);
+
 /*!
  @property captions
  @abstract
@@ -45,7 +45,7 @@
  @discussion
 	This is the array of AVCaptions to consider when drawing. The array can contain no captions.
  */
-@property (nonatomic, copy) NSArray<AVCaption *> * captions;
+@property (nonatomic, copy) NSArray<AVCaption *> * captions API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos);
 
 /*!
  @property bounds
@@ -54,7 +54,7 @@
  @discussion
 	This is a CGRect indicating where captions are drawn using renderInContext:atTime: Once established, this CGRect is used in each call to renderInContext:atTime: until it is changed to another value. This should be set up earlier than drawing.
  */
-@property (nonatomic) CGRect bounds;
+@property (nonatomic) CGRect bounds API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos);
 
 /*!
  @method		captionSceneChangesInRange:
@@ -69,7 +69,7 @@
 				
 	The consideredTimeRange parameter is a CMTimeRange expressing the limits for consideration. The extent of this range does not need to correspond to the timing of captions. It might be the range from 0 to some duration. For efficiency, the range can be limited to a window of time. It is also possible to use the range anchored at a time and extending in the direction of playback.
  */
-- (NSArray<AVCaptionRendererScene *> *)captionSceneChangesInRange:(CMTimeRange)consideredTimeRange;
+- (NSArray<AVCaptionRendererScene *> *)captionSceneChangesInRange:(CMTimeRange)consideredTimeRange API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos);
 
 
 /*!
@@ -77,10 +77,32 @@
  @abstract		Draw the captions corresponding to a time established by the AVCaptions to a CGContext.
  @discussion	Captions are drawn into the CGContextRef based upon their activation at the specified time. If there are no captions or no captions at the specified time, "emptiness" will still be drawn (e.g., flood filling with zero alpha or a color).
  */
-- (void)renderInContext:(CGContextRef)ctx forTime:(CMTime)time;
+- (void)renderInContext:(CGContextRef)ctx forTime:(CMTime)time API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos);
 
 @end
 
+#pragma mark --- AVCaptionRenderer_CaptionPreview ---
+
+API_AVAILABLE(macos(26.4), ios(26.4), tvos(26.4), visionos(26.4)) API_UNAVAILABLE(watchos)
+@interface AVCaptionRenderer (AVCaptionRenderer_CaptionPreview)
+
+/*!
+ @method		captionPreviewForProfileID:extendedLanguageTag:renderSize:
+ @abstract		Generate a caption preview attributed string for the specified profile ID.
+ @discussion	Returns an attributed string containing a preview of captions rendered using the specified profile ID.
+ @param			profileID
+				The identifier of the accessibility profile to use for caption appearance. Profile IDs can be obtained from MACaptionAppearanceCopyProfileIDs(). This determines font, color, background, and other visual characteristics.
+ @param			extendedLanguageTag
+				The IETF BCP 47 (RFC 4646) language identifier that will be used to generate the localized caption preview text.  If nil, the system language will be used.
+ @param			renderSize
+				The size of the layer into which the captions will be rendered. This determines the layout and positioning of the caption text.
+ @result		An NSAttributedString containing the caption preview.
+ @discussion	It is strongly recommended that the caller take appropriate measures to prevent blocking essential services such as the user interface, for example, by avoiding calling this method in the main thread.
+ */
++ (NSAttributedString *)captionPreviewForProfileID:(NSString *)profileID extendedLanguageTag:(nullable NSString *)extendedLanguageTag renderSize:(CGSize)renderSize;
+
+@end
+
 #pragma mark --- AVCaptionRendererScene ---
 
 @class AVCaptionRendererSceneInternal;
@@ -134,9 +156,6 @@
 
 
 NS_ASSUME_NONNULL_END
-
-#endif // ( TARGET_OS_OSX || ( TARGET_OS_IOS && ! TARGET_OS_VISION ) )
-
 
 #else
 #import <AVFCore/AVCaptionRenderer.h>
diff -ruN /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureInput.h /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureInput.h
--- /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureInput.h	2025-11-09 04:47:23
+++ /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureInput.h	2026-02-16 07:09:54
@@ -379,21 +379,12 @@
  
  @discussion
     The receiver's multichannelAudioMode property can only be set to a certain mode if this method returns YES for that mode.
- 
-    Multichannel audio modes are not supported when used in conjunction with AVCaptureMultiCamSession.
  */
 - (BOOL)isMultichannelAudioModeSupported:(AVCaptureMultichannelAudioMode)multichannelAudioMode API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(watchos, visionos);
 
-/*!
- @property multichannelAudioMode
- @abstract
-    Indicates the multichannel audio mode to apply when recording audio.
- 
- @discussion
-    This property only takes effect when audio is being routed through the built-in microphone, and is ignored if an external microphone is in use.
-    
-    The default value is AVCaptureMultichannelAudioModeNone, in which case the default single channel audio recording is used.
- */
+/// Indicates the multichannel audio mode to apply when recording audio.
+///
+/// This property only takes effect when audio is being routed through the built-in microphone, and is ignored if an external microphone is in use. The default value is ``AVCaptureMultichannelAudioModeNone``, in which case the default single channel audio recording is used. In an ``AVCaptureMultiCamSession``, when audio mode is set to any value other than ``AVCaptureMultichannelAudioModeNone``, only one ``sourceDevicePosition`` is allowed for audio ports.
 @property(nonatomic) AVCaptureMultichannelAudioMode multichannelAudioMode API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(watchos, visionos);
 
 /*!
@@ -415,6 +406,17 @@
     Wind noise removal is available when the AVCaptureDeviceInput multichannelAudioMode property is set to any value other than AVCaptureMultichannelAudioModeNone.
  */
 @property(nonatomic, getter=isWindNoiseRemovalEnabled) BOOL windNoiseRemovalEnabled API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+
+/// Whether or not audio zoom is supported.
+///
+/// This property returns `true` if the device supports audio zoom.
+@property(nonatomic, readonly, getter=isAudioZoomSupported) BOOL audioZoomSupported API_AVAILABLE(macos(26.4), ios(26.4), macCatalyst(26.4), tvos(26.4)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+
+/// Whether or not audio zoom is enabled.
+///
+/// Setting this property to `true` throws an exception if ``isAudioZoomSupported`` is `false`. Default is `true` when supported. When enabled, the sound field narrows or expands to match the field of view of the video device's zoom factor. Set this property to `false` if you want to capture the full sound field regardless of video zoom. This property only takes effect when added to a session with a video device, and ``AVCaptureMultichannelAudioMode`` is set to any value other than ``AVCaptureMultichannelAudioModeNone``. When using multiple cameras in ``AVCaptureMultiCamSession``, audio zoom is determined by the zoom factor of the preferred camera. The preferred camera is selected to match the mic position, either front or back. If more than one camera is available in that position, the camera with the widest field of view is chosen with virtual cameras preferred over single camera ones. If no camera is found to match the mic position, audio zoom is unavailable.
+@property(nonatomic, getter=isAudioZoomEnabled) BOOL audioZoomEnabled API_AVAILABLE(macos(26.4), ios(26.4), macCatalyst(26.4), tvos(26.4)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+
 
 /// A BOOL value specifying whether Cinematic Video capture is supported.
 ///
diff -ruN /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVContentKeySession.h /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVContentKeySession.h
--- /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVContentKeySession.h	2025-11-13 05:59:43
+++ /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVContentKeySession.h	2026-02-14 04:49:21
@@ -94,6 +94,22 @@
 /// The key system used for retrieving keys
 @property (readonly) AVContentKeySystem keySystem;
 
+/// Boolean indicating whether advisory keys are enabled on the client.
+///
+/// Set to true to enable advisory key loading, false to disable. false by default.
+///
+/// Advisory key loading allows applications to make use of content keys provided speculatively
+/// by the key server. When enabled, FairPlay may cache these keys and return them immediately
+/// on subsequent requests without requiring a round-trip to the key server.
+///
+/// The delegate must be prepared to handle advisory key requests by checking the `canBeFulfilledWithAdvisoryKey` property on
+/// `AVContentKeyRequest` objects.
+///
+/// When an advisory key is already cached by FairPlay, `makeStreamingContentKeyRequestData`
+/// will return nil for the SPC data, and `canBeFulfilledWithAdvisoryKey` will return true. In this case,
+/// no request to the key server is necessary.
+@property (readwrite) BOOL supportsAdvisoryKeys API_UNAVAILABLE(ios, tvos) API_UNAVAILABLE(macos, watchos, visionos, macCatalyst);
+
 /// Tells the receiver to treat the session as having been intentionally and normally expired.
 /// 
 /// When an instance of AVContentKeySession receives an expire message, all of its associated objects conforming to the AVContentKeyRecipient protocol will become inoperable. Send this message only after you have finished operating on the media data.
@@ -399,6 +415,23 @@
 /// 
 /// These interstitial AVURLAssets may be retrieved from the primary AVURLAsset via AVPlayerInterstitialEventMonitor.
 @property (readonly, nullable, weak) id <AVContentKeyRecipient> originatingRecipient API_AVAILABLE(macos(15.4), ios(18.4), tvos(18.4), watchos(11.4), visionos(2.4));
+
+/// Indicates whether this key request was initiated for an advisory key.
+///
+/// This property is set to true when:
+/// 	1. Advisory key loading is enabled on the parent AVContentKeySession
+/// 	2. The key was previously loaded as an advisory key and cached by FairPlay
+/// 	3. A subsequent request for the same key is made
+///
+/// When `canBeFulfilledWithAdvisoryKey` is true and `makeStreamingContentKeyRequestData` returns nil
+/// for the SPC data, this indicates FairPlay has already cached the key. No request to the
+/// key server for a key response is necessary, and the application should simply return from the completion handler.
+///
+/// This property should be checked in the completion handler of
+/// `makeStreamingContentKeyRequestData(forApp:contentIdentifier:options:completionHandler:)`
+/// whenever the SPC data is nil to distinguish advisory keys from actual errors.
+
+@property (readonly) BOOL canBeFulfilledWithAdvisoryKey API_UNAVAILABLE(ios, tvos) API_UNAVAILABLE(macos, watchos, visionos, macCatalyst);
 
 /// Request secure token to have extended validation data. The value for the key should be previously created offline key using -[AVContentKeyRequest persistableContentKeyFromKeyVendorResponse:options:error:].
 AVF_EXPORT NSString *const AVContentKeyRequestRequiresValidationDataInSecureTokenKey API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0), visionos(1.0));
diff -ruN /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVFoundation.apinotes /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVFoundation.apinotes
--- /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVFoundation.apinotes	2025-11-17 06:35:43
+++ /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVFoundation.apinotes	2026-02-17 05:38:41
@@ -1409,6 +1409,10 @@
   SwiftName: audioSessionInterrupted
 - Name: AVPlayerRateDidChangeAppBackgroundedReason
   SwiftName: appBackgrounded
+- Name: AVPlayerRateDidChangeReasonPlayheadReachedLiveEdge
+  SwiftName: playheadReachedLiveEdge
+- Name: AVPlayerRateDidChangeReasonReversePlaybackReachedStartOfSeekableRange
+  SwiftName: reversePlaybackReachedStartOfSeekableRange
   
 SwiftVersions:
 - Version: 3
diff -ruN /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVMetrics.h /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVMetrics.h
--- /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVMetrics.h	2025-11-13 05:59:44
+++ /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVMetrics.h	2026-02-14 05:04:12
@@ -463,7 +463,7 @@
 /// 
 /// Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
 NS_SWIFT_SENDABLE
-API_AVAILABLE(macos(15), ios(18), tvos(18), watchos(11), visionos(2))
+API_AVAILABLE(macos(26), ios(26), tvos(26), watchos(26), visionos(26))
 @interface AVMetricDownloadSummaryEvent : AVMetricEvent
 AV_INIT_UNAVAILABLE
 
diff -ruN /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayer.h /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayer.h
--- /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayer.h	2025-11-16 02:56:42
+++ /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayer.h	2026-02-15 17:21:16
@@ -132,6 +132,10 @@
 AVF_EXPORT AVPlayerRateDidChangeReason const AVPlayerRateDidChangeReasonSetRateFailed API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), visionos(1.0)) API_UNAVAILABLE(watchos);
 AVF_EXPORT AVPlayerRateDidChangeReason const AVPlayerRateDidChangeReasonAudioSessionInterrupted API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), visionos(1.0)) API_UNAVAILABLE(watchos);
 AVF_EXPORT AVPlayerRateDidChangeReason const AVPlayerRateDidChangeReasonAppBackgrounded API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+// Indicates that the player automatically switched the playback rate from > 1.0 back to 1.0 when the playhead reached the live edge during live streaming.
+AVF_EXPORT AVPlayerRateDidChangeReason const AVPlayerRateDidChangeReasonPlayheadReachedLiveEdge API_AVAILABLE(macos(26.4), ios(26.4), tvos(26.4), watchos(26.4), visionos(26.4));
+// Indicates that the player automatically switched rate to 1.0 when the reverse playback reached start of seekable range. only for live.
+AVF_EXPORT AVPlayerRateDidChangeReason const AVPlayerRateDidChangeReasonReversePlaybackReachedStartOfSeekableRange API_AVAILABLE(macos(26.4), ios(26.4), tvos(26.4), watchos(26.4), visionos(26.4));
 
 @interface AVPlayer (AVPlayerPlaybackControl)
 
@@ -797,6 +801,17 @@
 ///
 /// For more information regarding management of class objects in SwiftUI, please refer to https://developer.apple.com/documentation/swiftui/state.
 @property (class, readwrite, getter=isObservationEnabled) BOOL observationEnabled NS_SWIFT_NONISOLATED API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));
+@end
+
+@interface AVPlayer (AVPlayerAllowsCaptureOfClearKeyVideo)
+
+/// Indicates whether the video output of ClearKey Encrypted Video can be captured
+///
+/// When set to YES, and the video being played by AVPlayer is Clear Key Encrypted, Video Output can be captured. This applies to user functionality like Screenshots as well as APIs like AVPlayerItemVideoOutput. If NO, any capture of the video output of any encrypted content is blacked out. This property has no effect on DRM protected content e.g. FairPlay / Pastis encrypted content.
+/// Default is NO
+
+@property (nonatomic) BOOL allowsCaptureOfClearKeyVideo NS_SWIFT_NONISOLATED API_AVAILABLE(macos(26.4), ios(26.4), tvos(26.4), watchos(26.4), visionos(26.4));
+
 @end
 
 @interface AVPlayer (AVPlayerDeprecated)
diff -ruN /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayerInterstitialEventController.h /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayerInterstitialEventController.h
--- /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayerInterstitialEventController.h	2025-11-16 02:56:41
+++ /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayerInterstitialEventController.h	2026-02-14 05:04:12
@@ -170,6 +170,9 @@
 /// If the AVPlayerInterstitialEvent's templateItems is empty and the assetListResponse is nil, then an asset list read is expected. If the AVPlayerInterstitialEvent's templateItems is not empty and the assetListResponse is nil, then an asset list read is not expected.
 @property (readonly, nullable) NSDictionary * NS_SWIFT_SENDABLE assetListResponse API_AVAILABLE(macos(13.3), ios(16.4), tvos(16.4), watchos(9.4), visionos(1.0));
 
+/// The identifier of the daterange-schedule that produced this event. nil if the event was not a product of a daterange-schedule.
+@property (readonly, nullable) NSString * NS_SWIFT_SENDABLE scheduleIdentifier API_AVAILABLE(macos(26.4), ios(26.4), tvos(26.4), watchos(26.4), visionos(26.4));
+
 /// These constants describe the status of the asset list response for an AVPlayerInterstitialEvent.
 typedef NS_ENUM(NSInteger, AVPlayerInterstitialEventAssetListResponseStatus) {
 	/// Indicates that the asset list response is now available and non-nil, meaning the asset list read was successful.
@@ -384,6 +387,27 @@
 /// The value corresponding to this key is of type NSNumber with a BOOL value.
 AVF_EXPORT NSString *const AVPlayerInterstitialEventMonitorInterstitialEventDidFinishDidPlayEntireEventKey API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0));
 
+/// A notification that is posted whenever a daterange-schedule request completes.
+/// 
+/// The userInfo dictionary can contain the following keys and values:
+/// 1. AVPlayerInterstitialEventMonitorScheduleRequestIdentifierKey, whose value is an NSString identifying the schedule.
+/// 2. AVPlayerInterstitialEventMonitorScheduleRequestResponseKey, whose value is an NSData carrying the JSON response. Absent if request failed.
+/// 3. AVPlayerInterstitialEventMonitorScheduleRequestErrorKey, whose value is an NSError.
+AVF_EXPORT NSNotificationName const AVPlayerInterstitialEventMonitorScheduleRequestCompletedNotification API_AVAILABLE(macos(26.4), ios(26.4), tvos(26.4), watchos(26.4), visionos(26.4));
+
+/// userInfo dictionary key for the AVPlayerInterstitialEventMonitorScheduleRequestCompletedNotification. Value is NSString. 
+/// 
+AVF_EXPORT NSString *const AVPlayerInterstitialEventMonitorScheduleRequestIdentifierKey API_AVAILABLE(macos(26.4), ios(26.4), tvos(26.4), watchos(26.4), visionos(26.4));
+
+/// userInfo dictionary key for the AVPlayerInterstitialEventMonitorScheduleRequestCompletedNotification. Value is NSData. Absent if the request failed.
+/// 
+AVF_EXPORT NSString *const AVPlayerInterstitialEventMonitorScheduleRequestResponseKey API_AVAILABLE(macos(26.4), ios(26.4), tvos(26.4), watchos(26.4), visionos(26.4));
+
+/// userInfo dictionary key for the AVPlayerInterstitialEventMonitorScheduleRequestCompletedNotification. Value is NSError. Absent if the request succeeded
+/// 
+AVF_EXPORT NSString *const AVPlayerInterstitialEventMonitorScheduleRequestErrorKey API_AVAILABLE(macos(26.4), ios(26.4), tvos(26.4), watchos(26.4), visionos(26.4));
+
+
 /// An AVPlayerInterstitialEventController allows you to specify a schedule of interstitial events for items played by a primary player. By creating an instance of AVPlayerInterstitialEventController and setting a schedule of interstitial events, you pre-empt directives the are intrinsic to the items played by the primary player, if any exist, causing them to be ignored.
 /// 
 /// The schedule of interstitial events is specified as an array of AVPlayerInterstitialEvents. For each AVPlayerInterstitialEvent, when the primary player's current item is the primary item of the interstitial event and its currentDate reaches the date of the event, playback of the primary item by the primary player is temporarily suspended, i.e. its timeControlStatus changes to AVPlayerTimeControlStatusWaitingToPlayAtSpecifiedRate and its reasonForWaitingToPlay will change to AVPlayerWaitingDuringInterstitialEventReason. During this suspension, playback of items that replicate the interstitial template items of the event are played by the interstitial player, which temporarily assumes the output configuration of the primary player; for example, its visual content will be routed to AVPlayerLayers that reference the primary player. Once the interstitial player has advanced through playback of the interstitial items specified by the event or its current item otherwise becomes nil, playback of the primary content will resume, at an offset from the time at which it was suspended as specified by the event.
@@ -469,6 +493,9 @@
 
 /// If the item was created automatically according to a template item for looping, for interstitial playback, or for other purposes, indicates the AVPlayerItem that was used as the template.
 @property (nonatomic, readonly, nullable) AVPlayerItem *templatePlayerItem NS_SWIFT_NONISOLATED API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
+
+/// The identifier of the AVPlayerInterstitialEvent that created this item, or nil if the item was not created from an interstitial event.
+@property (nonatomic, readonly, nullable) NSString *interstitialEventIdentifier NS_SWIFT_NONISOLATED API_AVAILABLE(macos(26.4), ios(26.4), tvos(26.4), watchos(26.4), visionos(26.4));
 
 @end
 
diff -ruN /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayerLayer.h /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayerLayer.h
--- /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayerLayer.h	2025-11-16 02:51:53
+++ /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayerLayer.h	2026-02-15 21:04:03
@@ -115,6 +115,26 @@
 API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), visionos(1.0)) API_UNAVAILABLE(watchos)
 #endif
 ;
+
+/// Starts displaying a caption preview with the specified accessibility profile.
+///
+/// This method enables a preview mode that displays sample caption text using the visual appearance settings from the specified accessibility profile. The preview replaces any currently active subtitles and/or closed captions while active. The sample caption text position can be specified to avoid UI controls.
+///
+/// - Parameters:
+///   - profileID: The identifier of the accessibility profile to use for caption appearance.
+///                Profile IDs can be obtained from `MACaptionAppearanceCopyProfileIDs()`.
+///                This determines font, color, background, and other visual characteristics.
+///   - position: A CGPoint that defines the position (in points) of the caption preview relative to the default positioning of content captions (centered near the bottom of the video). Position values can be negative. (0, 0) represents the default positioning.
+///   - text: Optional custom text to display in the preview. If `nil`, a standard localized preview message will be shown.
+///
+/// - Note: You must call ``stopShowingCaptionPreview`` to exit the preview.
+- (void)setCaptionPreviewProfileID:(NSString *)profileID position:(CGPoint)position text:(nullable NSString *)text API_AVAILABLE(macos(26.4), ios(26.4), tvos(26.4), visionos(26.4)) API_UNAVAILABLE(watchos);
+
+/// Stops showing the caption preview.
+///
+/// This method stops the caption preview and restores any currently active subtitles and/or closed captions.
+- (void)stopShowingCaptionPreview API_AVAILABLE(macos(26.4), ios(26.4), tvos(26.4), visionos(26.4)) API_UNAVAILABLE(watchos);
+
 @end
 
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVVideoSettings.h /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVVideoSettings.h
--- /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVVideoSettings.h	2025-11-16 02:56:41
+++ /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVVideoSettings.h	2026-02-15 17:40:09
@@ -5,14 +5,6 @@
 	Framework:  AVFoundation
  
 	Copyright 2010-2020,2022-2025 Apple Inc. All rights reserved.
- 
-	$Log$
-	07jul2025 jbailey
-	<rdar://153021932> Update availability to 26.0 for all platforms. <dcasey, abhi>
-
-	1apr2024 dcasey
-	<rdar://125102733> AVF - Warning _TEMP_AVVideoTransferFunction_IEC_sRGB <jbailey>
-
 */
 
 #import <AVFoundation/AVBase.h>
@@ -276,7 +268,7 @@
  
  Most keys can only be used for certain decoders.  Look at individual keys for details.
  */
-AVF_EXPORT NSString *const AVVideoDecompressionPropertiesKey /* NSDictionary */   API_AVAILABLE(macos(10.13), ios(17.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos);
+AVF_EXPORT NSString *const AVVideoDecompressionPropertiesKey /* NSDictionary */   API_AVAILABLE(macos(10.13), ios(17.0), visionos(1.0), tvos(26.4), watchos(26.4));
 
 /*!
 	@constant AVVideoEncoderSpecificationKey

Clone this wiki locally