-
Notifications
You must be signed in to change notification settings - Fork 516
AVFoundation iOS xcode16.0 b1
Rolf Bjarne Kvinge edited this page Jun 24, 2024
·
2 revisions
#AVFoundation.framework
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAnimation.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAnimation.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAnimation.h 2024-04-17 08:13:14
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAnimation.h 2024-05-30 11:22:41
@@ -18,7 +18,7 @@
The constant is a small, non-zero, positive value which avoids CoreAnimation
from replacing 0.0 with CACurrentMediaTime().
*/
-AVF_EXPORT const CFTimeInterval AVCoreAnimationBeginTimeAtZero API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT const CFTimeInterval AVCoreAnimationBeginTimeAtZero API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
typedef NSString * AVLayerVideoGravity NS_STRING_ENUM;
@@ -28,7 +28,7 @@
@discussion AVLayerVideoGravityResizeAspect may be used when setting the videoGravity
property of an AVPlayerLayer or AVCaptureVideoPreviewLayer instance.
*/
-AVF_EXPORT AVLayerVideoGravity const AVLayerVideoGravityResizeAspect API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT AVLayerVideoGravity const AVLayerVideoGravityResizeAspect API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@@ -37,7 +37,7 @@
@discussion AVLayerVideoGravityResizeAspectFill may be used when setting the videoGravity
property of an AVPlayerLayer or AVCaptureVideoPreviewLayer instance.
*/
-AVF_EXPORT AVLayerVideoGravity const AVLayerVideoGravityResizeAspectFill API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT AVLayerVideoGravity const AVLayerVideoGravityResizeAspectFill API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@constant AVLayerVideoGravityResize
@@ -45,7 +45,7 @@
@discussion AVLayerVideoGravityResize may be used when setting the videoGravity
property of an AVPlayerLayer or AVCaptureVideoPreviewLayer instance.
*/
-AVF_EXPORT AVLayerVideoGravity const AVLayerVideoGravityResize API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT AVLayerVideoGravity const AVLayerVideoGravityResize API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
#else
#import <AVFCore/AVAnimation.h>
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAsset.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAsset.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAsset.h 2024-04-08 16:42:02
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAsset.h 2024-05-30 10:53:37
@@ -4,7 +4,7 @@
Framework: AVFoundation
- Copyright 2010-2023 Apple Inc. All rights reserved.
+ Copyright 2010-2024 Apple Inc. All rights reserved.
*/
@@ -58,7 +58,7 @@
@class AVDisplayCriteria;
@class AVAssetInternal;
-API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0))
+API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0))
@interface AVAsset : NSObject <NSCopying, AVAsynchronousKeyValueLoading>
{
@private
@@ -73,23 +73,23 @@
@result An instance of AVAsset.
@discussion Returns a newly allocated instance of a subclass of AVAsset initialized with the specified URL.
*/
-+ (instancetype)assetWithURL:(NSURL *)URL;
++ (instancetype)assetWithURL:(NSURL *)URL AVF_DEPRECATED_FOR_SWIFT_ONLY("Use AVURLAsset(url:) instead", macos(10.7, 15.0), ios(4.0, 18.0), tvos(9.0, 18.0), watchos(1.0, 11.0), visionos(1.0, 2.0));
/* Indicates the duration of the asset. If @"providesPreciseDurationAndTiming" is NO, a best-available estimate of the duration is returned. The degree of precision preferred for timing-related properties can be set at initialization time for assets initialized with URLs. See AVURLAssetPreferPreciseDurationAndTimingKey for AVURLAsset below.
*/
-@property (nonatomic, readonly) CMTime duration AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.duration) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+@property (nonatomic, readonly) CMTime duration AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.duration) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
/* indicates the natural rate at which the asset is to be played; often but not always 1.0
*/
-@property (nonatomic, readonly) float preferredRate AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.preferredRate) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+@property (nonatomic, readonly) float preferredRate AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.preferredRate) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
/* indicates the preferred volume at which the audible media of an asset is to be played; often but not always 1.0
*/
-@property (nonatomic, readonly) float preferredVolume AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.preferredVolume) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+@property (nonatomic, readonly) float preferredVolume AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.preferredVolume) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
/* indicates the preferred transform to apply to the visual content of the asset for presentation or processing; the value is often but not always the identity transform
*/
-@property (nonatomic, readonly) CGAffineTransform preferredTransform AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.preferredTransform) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+@property (nonatomic, readonly) CGAffineTransform preferredTransform AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.preferredTransform) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
/* The following property is deprecated. Instead, use the naturalSize and preferredTransform, as appropriate, of the receiver's video tracks. See -tracksWithMediaType: below.
*/
@@ -115,7 +115,7 @@
#if __swift__
API_DEPRECATED("Use load(.minimumTimeOffsetFromLive) instead", macos(10.15, 13.0), ios(13.0, 16.0), tvos(13.0, 16.0), watchos(6.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0));
+API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0), visionos(1.0));
#endif
@end
@@ -125,7 +125,7 @@
/* Indicates that the asset provides precise timing. See @"duration" above and AVURLAssetPreferPreciseDurationAndTimingKey below.
*/
-@property (nonatomic, readonly) BOOL providesPreciseDurationAndTiming AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.providesPreciseDurationAndTiming) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+@property (nonatomic, readonly) BOOL providesPreciseDurationAndTiming AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.providesPreciseDurationAndTiming) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
/*!
@method cancelLoading
@@ -173,7 +173,7 @@
@discussion
For AVURLAsset, this property reflects the value passed in for AVURLAssetReferenceRestrictionsKey, if any. See AVURLAssetReferenceRestrictionsKey below for a full discussion of reference restrictions. The default value for this property is AVAssetReferenceRestrictionForbidLocalReferenceToRemote.
*/
-@property (nonatomic, readonly) AVAssetReferenceRestrictions referenceRestrictions API_AVAILABLE(macos(10.7), ios(5.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly) AVAssetReferenceRestrictions referenceRestrictions API_AVAILABLE(macos(10.7), ios(5.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@end
@@ -186,7 +186,7 @@
@property tracks
@abstract Provides the array of AVAssetTracks contained by the asset
*/
-@property (nonatomic, readonly) NSArray<AVAssetTrack *> *tracks AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.tracks) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+@property (nonatomic, readonly) NSArray<AVAssetTrack *> *tracks AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.tracks) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
/*!
@method trackWithTrackID:
@@ -200,7 +200,7 @@
#if __swift__
API_DEPRECATED("Use loadTrack(withTrackID:) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_DEPRECATED_WITH_REPLACEMENT("loadTrackWithTrackID:completionHandler:", macos(10.7, API_TO_BE_DEPRECATED), ios(4.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED), watchos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(visionos);
+API_DEPRECATED("Use loadTrackWithTrackID:completionHandler: instead", macos(10.7, 15.0), ios(4.0, 18.0), tvos(9.0, 18.0), watchos(1.0, 11.0)) API_UNAVAILABLE(visionos);
#endif
/*!
@@ -211,7 +211,7 @@
@param completionHandler
A block that is called when the loading is finished, with either the loaded track (which may be nil if no track of the specified trackID is available) or an error.
*/
-- (void)loadTrackWithTrackID:(CMPersistentTrackID)trackID completionHandler:(void (^)(AVAssetTrack * _Nullable_result, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+- (void)loadTrackWithTrackID:(CMPersistentTrackID)trackID completionHandler:(void (^ NS_SWIFT_SENDABLE)(AVAssetTrack * _Nullable_result, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
/*!
@method tracksWithMediaType:
@@ -225,7 +225,7 @@
#if __swift__
API_DEPRECATED("Use loadTracks(withMediaType:) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_DEPRECATED_WITH_REPLACEMENT("loadTracksWithMediaType:completionHandler:", macos(10.7, API_TO_BE_DEPRECATED), ios(4.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED), watchos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(visionos);
+API_DEPRECATED("Use loadTracksWithMediaType:completionHandler: instead", macos(10.7, 15.0), ios(4.0, 18.0), tvos(9.0, 18.0), watchos(1.0, 11.0)) API_UNAVAILABLE(visionos);
#endif
/*!
@@ -236,7 +236,7 @@
@param completionHandler
A block that is called when the loading is finished, with either the loaded tracks (which may be empty if no tracks of the specified media type are available) or an error.
*/
-- (void)loadTracksWithMediaType:(AVMediaType)mediaType completionHandler:(void (^)(NSArray<AVAssetTrack *> * _Nullable, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+- (void)loadTracksWithMediaType:(AVMediaType)mediaType completionHandler:(void (^ NS_SWIFT_SENDABLE)(NSArray<AVAssetTrack *> * _Nullable, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
/*!
@method tracksWithMediaCharacteristic:
@@ -250,7 +250,7 @@
#if __swift__
API_DEPRECATED("Use loadTracks(withMediaCharacteristic:) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_DEPRECATED_WITH_REPLACEMENT("loadTracksWithMediaCharacteristic:completionHandler:", macos(10.7, API_TO_BE_DEPRECATED), ios(4.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED), watchos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(visionos);
+API_DEPRECATED("Use loadTracksWithMediaCharacteristic:completionHandler: instead", macos(10.7, 15.0), ios(4.0, 18.0), tvos(9.0, 18.0), watchos(1.0, 11.0)) API_UNAVAILABLE(visionos);
#endif
/*!
@@ -261,7 +261,7 @@
@param completionHandler
A block that is called when the loading is finished, with either the loaded tracks (which may be empty if no tracks with the specified characteristic are available) or an error.
*/
-- (void)loadTracksWithMediaCharacteristic:(AVMediaCharacteristic)mediaCharacteristic completionHandler:(void (^)(NSArray<AVAssetTrack *> * _Nullable, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+- (void)loadTracksWithMediaCharacteristic:(AVMediaCharacteristic)mediaCharacteristic completionHandler:(void (^ NS_SWIFT_SENDABLE)(NSArray<AVAssetTrack *> * _Nullable, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
/*!
@property trackGroups
@@ -275,7 +275,7 @@
#if __swift__
API_DEPRECATED("Use load(.trackGroups) instead", macos(10.9, 13.0), ios(7.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
+API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
#endif
@end
@@ -291,16 +291,16 @@
#if __swift__
API_DEPRECATED("Use load(.creationDate) instead", macos(10.8, 13.0), ios(5.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0));
+API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0), visionos(1.0));
#endif
/* Provides access to the lyrics of the asset suitable for the current locale.
*/
-@property (nonatomic, readonly, nullable) NSString *lyrics AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.lyrics) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+@property (nonatomic, readonly, nullable) NSString *lyrics AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.lyrics) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
/* Provides access to an array of AVMetadataItems for each common metadata key for which a value is available; items can be filtered according to language via +[AVMetadataItem metadataItemsFromArray:filteredAndSortedAccordingToPreferredLanguages:] and according to identifier via +[AVMetadataItem metadataItemsFromArray:filteredByIdentifier:].
*/
-@property (nonatomic, readonly) NSArray<AVMetadataItem *> *commonMetadata AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.commonMetadata) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+@property (nonatomic, readonly) NSArray<AVMetadataItem *> *commonMetadata AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.commonMetadata) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
/* Provides access to an array of AVMetadataItems for all metadata identifiers for which a value is available; items can be filtered according to language via +[AVMetadataItem metadataItemsFromArray:filteredAndSortedAccordingToPreferredLanguages:] and according to identifier via +[AVMetadataItem metadataItemsFromArray:filteredByIdentifier:].
*/
@@ -308,12 +308,12 @@
#if __swift__
API_DEPRECATED("Use load(.metadata) instead", macos(10.10, 13.0), ios(8.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0));
+API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0), visionos(1.0));
#endif
/* Provides an NSArray of NSStrings, each representing a metadata format that's available to the asset (e.g. ID3, iTunes metadata, etc.). Metadata formats are defined in AVMetadataFormat.h.
*/
-@property (nonatomic, readonly) NSArray<AVMetadataFormat> *availableMetadataFormats AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.availableMetadataFormats) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+@property (nonatomic, readonly) NSArray<AVMetadataFormat> *availableMetadataFormats AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.availableMetadataFormats) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
/*!
@method metadataForFormat:
@@ -327,7 +327,7 @@
#if __swift__
API_DEPRECATED("Use loadMetadata(for:) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_DEPRECATED_WITH_REPLACEMENT("loadMetadataForFormat:completionHandler:", macos(10.7, API_TO_BE_DEPRECATED), ios(4.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED), watchos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(visionos);
+API_DEPRECATED("Use loadMetadataForFormat:completionHandler: instead", macos(10.7, 15.0), ios(4.0, 18.0), tvos(9.0, 18.0), watchos(1.0, 11.0)) API_UNAVAILABLE(visionos);
#endif
/*!
@@ -338,7 +338,7 @@
@param completionHandler
A block that is invoked when loading is complete, vending the array of metadata items (which may be empty if there is no metadata of the specified format) or an error.
*/
-- (void)loadMetadataForFormat:(AVMetadataFormat)format completionHandler:(void (^)(NSArray<AVMetadataItem *> * _Nullable, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+- (void)loadMetadataForFormat:(AVMetadataFormat)format completionHandler:(void (^ NS_SWIFT_SENDABLE)(NSArray<AVMetadataItem *> * _Nullable, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
@end
@@ -353,7 +353,7 @@
#if __swift__
API_DEPRECATED("Use load(.availableChapterLocales) instead", macos(10.7, 13.0), ios(4.3, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0));
+API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0), visionos(1.0));
#endif
/*!
@@ -376,7 +376,7 @@
#if __swift__
API_DEPRECATED("Use loadChapterMetadataGroups(withTitleLocale:containingItemsWithCommonKeys:) instead", macos(10.7, 13.0), ios(4.3, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_DEPRECATED_WITH_REPLACEMENT("loadChapterMetadataGroupsWithTitleLocale:containingItemsWithCommonKeys:completionHandler:", macos(10.7, API_TO_BE_DEPRECATED), ios(4.3, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED), watchos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(visionos);
+API_DEPRECATED("Use loadChapterMetadataGroupsWithTitleLocale:containingItemsWithCommonKeys:completionHandler: instead", macos(10.7, 15.0), ios(4.3, 18.0), tvos(9.0, 18.0), watchos(1.0, 11.0)) API_UNAVAILABLE(visionos);
#endif
/*!
@@ -396,7 +396,7 @@
Further filtering of the metadata items in AVTimedMetadataGroups according to language can be accomplished using +[AVMetadataItem metadataItemsFromArray:filteredAndSortedAccordingToPreferredLanguages:]; filtering of the metadata items according to locale can be accomplished using +[AVMetadataItem metadataItemsFromArray:withLocale:].
*/
-- (void)loadChapterMetadataGroupsWithTitleLocale:(NSLocale *)locale containingItemsWithCommonKeys:(NSArray<AVMetadataKey> *)commonKeys completionHandler:(void (^)(NSArray<AVTimedMetadataGroup *> * _Nullable, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+- (void)loadChapterMetadataGroupsWithTitleLocale:(NSLocale *)locale containingItemsWithCommonKeys:(NSArray<AVMetadataKey> *)commonKeys completionHandler:(void (^ NS_SWIFT_SENDABLE)(NSArray<AVTimedMetadataGroup *> * _Nullable, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
/*!
@method chapterMetadataGroupsBestMatchingPreferredLanguages:
@@ -418,7 +418,7 @@
#if __swift__
API_DEPRECATED("Use loadChapterMetadataGroups(bestMatchingPreferredLanguages:) instead", macos(10.8, 13.0), ios(6.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_DEPRECATED_WITH_REPLACEMENT("loadChapterMetadataGroupsBestMatchingPreferredLanguages:completionHandler", macos(10.8, API_TO_BE_DEPRECATED), ios(6.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED), watchos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(visionos);
+API_DEPRECATED("Use loadChapterMetadataGroupsBestMatchingPreferredLanguages:completionHandler: instead", macos(10.8, 15.0), ios(6.0, 18.0), tvos(9.0, 18.0), watchos(1.0, 11.0)) API_UNAVAILABLE(visionos);
#endif
/*!
@@ -435,7 +435,7 @@
Further filtering of the metadata items in AVTimedMetadataGroups according to language can be accomplished using +[AVMetadataItem metadataItemsFromArray:filteredAndSortedAccordingToPreferredLanguages:]; filtering of the metadata items according to locale can be accomplished using +[AVMetadataItem metadataItemsFromArray:withLocale:].
*/
-- (void)loadChapterMetadataGroupsBestMatchingPreferredLanguages:(NSArray<NSString *> *)preferredLanguages completionHandler:(void (^)(NSArray<AVTimedMetadataGroup *> * _Nullable, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+- (void)loadChapterMetadataGroupsBestMatchingPreferredLanguages:(NSArray<NSString *> *)preferredLanguages completionHandler:(void (^ NS_SWIFT_SENDABLE)(NSArray<AVTimedMetadataGroup *> * _Nullable, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
@end
@@ -450,7 +450,7 @@
#if __swift__
API_DEPRECATED("Use load(.availableMediaCharacteristicsWithMediaSelectionOptions) instead", macos(10.8, 13.0), ios(5.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0));
+API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0), visionos(1.0));
#endif
/*!
@@ -474,7 +474,7 @@
#if __swift__
API_DEPRECATED("Use loadMediaSelectionGroup(for:) instead", macos(10.8, 13.0), ios(5.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_DEPRECATED_WITH_REPLACEMENT("loadMediaSelectionGroupForMediaCharacteristic:completionHandler:", macos(10.8, API_TO_BE_DEPRECATED), ios(5.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED), watchos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(visionos);
+API_DEPRECATED("Use loadMediaSelectionGroupForMediaCharacteristic:completionHandler: instead", macos(10.8, 15.0), ios(5.0, 18.0), tvos(9.0, 18.0), watchos(1.0, 11.0)) API_UNAVAILABLE(visionos);
#endif
/*!
@@ -493,7 +493,7 @@
Filtering of the options in the returned AVMediaSelectionGroup according to playability, locale, and additional media characteristics can be accomplished using the category AVMediaSelectionOptionFiltering defined on AVMediaSelectionGroup.
*/
-- (void)loadMediaSelectionGroupForMediaCharacteristic:(AVMediaCharacteristic)mediaCharacteristic completionHandler:(void (^)(AVMediaSelectionGroup * _Nullable_result, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+- (void)loadMediaSelectionGroupForMediaCharacteristic:(AVMediaCharacteristic)mediaCharacteristic completionHandler:(void (^ NS_SWIFT_SENDABLE)(AVMediaSelectionGroup * _Nullable_result, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
/*!
@property preferredMediaSelection
@abstract Provides an instance of AVMediaSelection with default selections for each of the receiver's media selection groups.
@@ -502,7 +502,7 @@
#if __swift__
API_DEPRECATED("Use load(.preferredMediaSelection) instead", macos(10.11, 13.0), ios(9.0, 16.0), tvos(9.0, 16.0), watchos(2.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0));
+API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0), visionos(1.0));
#endif
/*!
@@ -513,7 +513,7 @@
#if __swift__
API_DEPRECATED("Use load(.allMediaSelections) instead", macos(10.13, 13.0), ios(11.0, 16.0), tvos(11.0, 16.0), watchos(4.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));
+API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0), visionos(1.0));
#endif
@end
@@ -530,7 +530,7 @@
#if __swift__
API_DEPRECATED("Use load(.hasProtectedContent) instead", macos(10.7, 13.0), ios(4.2, 16.0), tvos(9.0, 16.0)) API_UNAVAILABLE(watchos, visionos);
#else
-API_AVAILABLE(macos(10.7), ios(4.2), tvos(9.0)) API_UNAVAILABLE(watchos);
+API_AVAILABLE(macos(10.7), ios(4.2), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
#endif
@end
@@ -548,7 +548,7 @@
#if __swift__
API_DEPRECATED("Use load(.canContainFragments) instead", macos(10.11, 13.0), ios(9.0, 16.0), tvos(9.0, 16.0)) API_UNAVAILABLE(watchos, visionos);
#else
-API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
#endif
/*!
@@ -560,7 +560,7 @@
#if __swift__
API_DEPRECATED("Use load(.containsFragments) instead", macos(10.11, 13.0), ios(9.0, 16.0), tvos(9.0, 16.0)) API_UNAVAILABLE(watchos, visionos);
#else
-API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
#endif
/*!
@@ -572,7 +572,7 @@
#if __swift__
API_DEPRECATED("Use load(.overallDurationHint) instead", macos(10.12.2, 13.0), ios(10.2, 16.0), tvos(10.2, 16.0), watchos(3.2, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_AVAILABLE(macos(10.12.2), ios(10.2), tvos(10.2), watchos(3.2));
+API_AVAILABLE(macos(10.12.2), ios(10.2), tvos(10.2), watchos(3.2), visionos(1.0));
#endif
@end
@@ -589,7 +589,7 @@
#if __swift__
API_DEPRECATED("Use load(.isPlayable) instead", macos(10.7, 13.0), ios(4.3, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0));
+API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0), visionos(1.0));
#endif
/* indicates whether an AVAssetExportSession can be used with the receiver for export
@@ -598,7 +598,7 @@
#if __swift__
API_DEPRECATED("Use load(.isExportable) instead", macos(10.7, 13.0), ios(4.3, 16.0), tvos(9.0, 16.0)) API_UNAVAILABLE(watchos, visionos);
#else
-API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0)) API_UNAVAILABLE(watchos);
+API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
#endif
/* indicates whether an AVAssetReader can be used with the receiver for extracting media data
@@ -607,7 +607,7 @@
#if __swift__
API_DEPRECATED("Use load(.isReadable) instead", macos(10.7, 13.0), ios(4.3, 16.0), tvos(9.0, 16.0)) API_UNAVAILABLE(watchos, visionos);
#else
-API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0)) API_UNAVAILABLE(watchos);
+API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
#endif
/* indicates whether the receiver can be used to build an AVMutableComposition
@@ -616,7 +616,7 @@
#if __swift__
API_DEPRECATED("Use load(.isComposable) instead", macos(10.7, 13.0), ios(4.3, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0));
+API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0), visionos(1.0));
#endif
/* indicates whether the receiver can be written to the saved photos album
@@ -625,7 +625,7 @@
#if __swift__
API_DEPRECATED("Use load(.isCompatibleWithSavedPhotosAlbum) instead", ios(5.0, 16.0), tvos(9.0, 16.0)) API_UNAVAILABLE(macos, watchos, visionos);
#else
-API_AVAILABLE(ios(5.0), tvos(9.0)) API_UNAVAILABLE(macos, watchos);
+API_AVAILABLE(ios(5.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(macos, watchos);
#endif
/*!
@@ -637,7 +637,7 @@
#if __swift__
API_DEPRECATED("Use load(.isCompatibleWithAirPlayVideo) instead", macos(10.11, 13.0), ios(9.0, 16.0), tvos(9.0, 16.0)) API_UNAVAILABLE(watchos, visionos);
#else
-API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
#endif
@@ -660,7 +660,7 @@
If precise duration and timing is not possible for the timed media resource referenced by the asset's URL, AVAsset.providesPreciseDurationAndTiming will be NO even if precise timing is requested via the use of this key.
*/
-AVF_EXPORT NSString *const AVURLAssetPreferPreciseDurationAndTimingKey API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT NSString *const AVURLAssetPreferPreciseDurationAndTimingKey API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVURLAssetOverrideMIMETypeKey
@@ -669,7 +669,7 @@
@discussion
When a value for this key is provided, only the specified MIME type is considered in determining how to handle or parse the media resource. Any other information that may be available, such as the URL path extension or a server-provided MIME type, is ignored.
*/
-AVF_EXPORT NSString *const AVURLAssetOverrideMIMETypeKey API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0));
+AVF_EXPORT NSString *const AVURLAssetOverrideMIMETypeKey API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0), visionos(1.0));
/*!
@constant AVURLAssetReferenceRestrictionsKey
@@ -678,7 +678,7 @@
@discussion
Some assets can contain references to media data stored outside the asset's container file, for example in another file. This key can be used to specify a policy to use when these references are encountered. If an asset contains one or more references of a type that is forbidden by the reference restrictions, loading of asset properties will fail. In addition, such an asset cannot be used with other AVFoundation modules, such as AVPlayerItem or AVAssetExportSession.
*/
-AVF_EXPORT NSString *const AVURLAssetReferenceRestrictionsKey API_AVAILABLE(macos(10.7), ios(5.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSString *const AVURLAssetReferenceRestrictionsKey API_AVAILABLE(macos(10.7), ios(5.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@constant AVURLAssetHTTPCookiesKey
@@ -695,7 +695,7 @@
In both of these cases, HTTP requests will be missing any cookies that do not apply to the AVURLAsset's URL.
This init option allows the AVURLAsset to use additional HTTP cookies for those HTTP(S) requests.
*/
-AVF_EXPORT NSString *const AVURLAssetHTTPCookiesKey API_AVAILABLE(macos(10.15), ios(8.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT NSString *const AVURLAssetHTTPCookiesKey API_AVAILABLE(macos(10.15), ios(8.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVURLAssetAllowsCellularAccessKey
@@ -703,7 +703,7 @@
@discussion
Default is YES.
*/
-AVF_EXPORT NSString *const AVURLAssetAllowsCellularAccessKey API_AVAILABLE(macos(10.15), ios(10.0), tvos(10.0), watchos(3.0));
+AVF_EXPORT NSString *const AVURLAssetAllowsCellularAccessKey API_AVAILABLE(macos(10.15), ios(10.0), tvos(10.0), watchos(3.0), visionos(1.0));
/*!
@constant AVURLAssetAllowsExpensiveNetworkAccessKey
@@ -711,7 +711,7 @@
@discussion
Default is YES.
*/
-AVF_EXPORT NSString *const AVURLAssetAllowsExpensiveNetworkAccessKey API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0));
+AVF_EXPORT NSString *const AVURLAssetAllowsExpensiveNetworkAccessKey API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0), visionos(1.0));
/*!
@constant AVURLAssetAllowsConstrainedNetworkAccessKey
@@ -719,7 +719,7 @@
@discussion
Default is YES.
*/
-AVF_EXPORT NSString *const AVURLAssetAllowsConstrainedNetworkAccessKey API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0));
+AVF_EXPORT NSString *const AVURLAssetAllowsConstrainedNetworkAccessKey API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0), visionos(1.0));
/*!
@constant AVURLAssetShouldSupportAliasDataReferencesKey
@@ -731,7 +731,7 @@
For more details about alias resolution, consult documentation of the bookmark-related interfaces of NSURL.
*/
-AVF_EXPORT NSString *const AVURLAssetShouldSupportAliasDataReferencesKey API_AVAILABLE(macos(10.10)) API_UNAVAILABLE(ios, tvos, watchos);
+AVF_EXPORT NSString *const AVURLAssetShouldSupportAliasDataReferencesKey API_AVAILABLE(macos(10.10)) API_UNAVAILABLE(ios, tvos, watchos, visionos);
/*!
@constant AVURLAssetURLRequestAttributionKey
@@ -742,7 +742,7 @@
Default value is NSURLRequestAttributionDeveloper.
All NSURLRequests issed on behalf of this AVURLAsset will be attributed with this value and follow the App Privacy Policy accordingly.
*/
-AVF_EXPORT NSString *const AVURLAssetURLRequestAttributionKey API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+AVF_EXPORT NSString *const AVURLAssetURLRequestAttributionKey API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
/*!
@constant AVURLAssetHTTPUserAgentKey
@@ -752,7 +752,7 @@
Value is an NSString
Default value is the systems's default User-Agent.
*/
-AVF_EXPORT NSString *const AVURLAssetHTTPUserAgentKey API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0));
+AVF_EXPORT NSString *const AVURLAssetHTTPUserAgentKey API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0), visionos(1.0));
/*!
@constant AVURLAssetPrimarySessionIdentifierKey
@@ -762,7 +762,7 @@
Value is an NSUUID. Its UUID string value will be used as the query parameter.
If you create AVURLAssets for the templateItems of AVPlayerInterstitialEvents and you want the instances of AVURLAsset that you create to be used during interstitial playback rather than equivalent AVURLAssets with the same URL, you must provide a value for this key that's equal to the httpSessionIdentifier of the primary AVPlayerItem's asset. See AVPlayerInterstitialEventController.h. This is especially useful if you require the use of a custom AVAssetResourceLoader delegate for interstitial assets.
*/
-AVF_EXPORT NSString *const AVURLAssetPrimarySessionIdentifierKey API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0));
+AVF_EXPORT NSString *const AVURLAssetPrimarySessionIdentifierKey API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0), visionos(1.0));
/*!
@@ -776,10 +776,13 @@
Once an AVURLAsset's value for a key is available, it will not change. AVPlayerItem provides access to information that can change dynamically during playback; see AVPlayerItem.duration and AVPlayerItem.tracks.
AVURLAssets can be initialized with NSURLs that refer to audiovisual media resources, such as streams (including HTTP live streams), QuickTime movie files, MP3 files, and files of other types.
+
+ Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
*/
@class AVURLAssetInternal;
-API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0))
+NS_SWIFT_SENDABLE
+API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0))
@interface AVURLAsset : AVAsset
{
@private
@@ -792,14 +795,14 @@
@abstract Provides the file types the AVURLAsset class understands.
@result An NSArray of UTIs identifying the file types the AVURLAsset class understands.
*/
-+ (NSArray<AVFileType> *)audiovisualTypes API_AVAILABLE(macos(10.7), ios(5.0), tvos(9.0), watchos(1.0));
++ (NSArray<AVFileType> *)audiovisualTypes API_AVAILABLE(macos(10.7), ios(5.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@method audiovisualMIMETypes
@abstract Provides the MIME types the AVURLAsset class understands.
@result An NSArray of NSStrings containing MIME types the AVURLAsset class understands.
*/
-+ (NSArray<NSString *> *)audiovisualMIMETypes API_AVAILABLE(macos(10.7), ios(5.0), tvos(9.0), watchos(1.0));
++ (NSArray<NSString *> *)audiovisualMIMETypes API_AVAILABLE(macos(10.7), ios(5.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@method isPlayableExtendedMIMEType:
@@ -810,7 +813,7 @@
On releases prior to macOS 14, iOS 17, tvOS 17, and watchOS 10, regardless of the specified MIME type this method interprets all codecs parameters according to the ISO family syntax defined by RFC 6381 and evaluates playability according to whether the indicated codecs are supported when carried in container formats that conform to the ISO BMFF specification, such as the MPEG-4 file format.
On releases starting with macOS 14, iOS 17, tvOS 17, and watchOS 10, this method interprets codecs parameters according to the syntax and namespace determined by the specified MIME type and evaluates playability according to whether the indicated codecs are supported when carried in the container format indicated by that MIME type. Codecs parameters for each of the following MIME types are supported: video/mp4 (per RFC 6381, ISO/IEC 14496-15 Annex E, et al), video/quicktime (RFC 6381 et al), video/mp2t (ISO/IEC 13818-1), audio/vnd.wave (RFC 2361), audio/aiff (using the CoreAudio AudioFormatID namespace), audio/x-caf (also using the CoreAudio AudioFormatID namespace), and audio/mpeg (e.g. codecs="mp3"). MIME types supported as alternatives for the same container formats, e.g audio/mp4, are equivalently treated. If the indicated MIME type defines no supported syntax and namespace for codecs parameters, when any codecs parameter is present this method returns NO.
*/
-+ (BOOL)isPlayableExtendedMIMEType: (NSString *)extendedMIMEType API_AVAILABLE(macos(10.7), ios(5.0), tvos(9.0), watchos(1.0));
++ (BOOL)isPlayableExtendedMIMEType: (NSString *)extendedMIMEType API_AVAILABLE(macos(10.7), ios(5.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@method URLAssetWithURL:options:
@@ -844,12 +847,12 @@
/*!
@property httpSessionIdentifier
@abstract
- Provides the identifier that's automatically included in any HTTP request issued on behalf of this asset in the HTTP header field "X-Playback-Session-Id".
+ Provides the identifier that's automatically included in any HTTP request issued on behalf of this asset in the HTTP header field "X-Playback-Session-Id".
@discussion
- The value is an NSUUID from which the UUID string can be obtained.
- Note that copies of an AVURLAsset vend an equivalent httpSessionIdentifier.
-*/
-@property (nonatomic, readonly) NSUUID *httpSessionIdentifier API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0));
+ The value is an NSUUID from which the UUID string can be obtained.
+ Note that copies of an AVURLAsset vend an equivalent httpSessionIdentifier.
+ */
+ @property (nonatomic, readonly) NSUUID *httpSessionIdentifier API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0), visionos(1.0));
@end
@@ -865,7 +868,7 @@
The loading of file URLs cannot be mediated via use of AVAssetResourceLoader.
Note that copies of an AVAsset will vend the same instance of AVAssetResourceLoader.
*/
-@property (nonatomic, readonly) AVAssetResourceLoader *resourceLoader API_AVAILABLE(macos(10.9), ios(6.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly) AVAssetResourceLoader *resourceLoader API_AVAILABLE(macos(10.9), ios(6.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@end
@@ -877,7 +880,7 @@
@property assetCache
@abstract Provides access to an instance of AVAssetCache to use for inspection of locally cached media data. Will be nil if an asset has not been configured to store or access media data from disk.
*/
-@property (nonatomic, readonly, nullable) AVAssetCache *assetCache API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly, nullable) AVAssetCache *assetCache API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@end
@@ -898,7 +901,7 @@
#if __swift__
API_DEPRECATED("Use findCompatibleTrack(for:) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_DEPRECATED_WITH_REPLACEMENT("findCompatibleTrackForCompositionTrack:completionHandler:", macos(10.7, API_TO_BE_DEPRECATED), ios(4.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED), watchos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(visionos);
+API_DEPRECATED("Use findCompatibleTrackForCompositionTrack:completionHandler: instead", macos(10.7, 15.0), ios(4.0, 18.0), tvos(9.0, 18.0), watchos(1.0, 11.0)) API_UNAVAILABLE(visionos);
#endif
/*!
@@ -913,7 +916,7 @@
Finds a track of the target with content that can be accommodated by the specified composition track.
The logical complement of -[AVMutableComposition mutableTrackCompatibleWithTrack:].
*/
-- (void)findCompatibleTrackForCompositionTrack:(AVCompositionTrack *)compositionTrack completionHandler:(void (^)(AVAssetTrack * _Nullable_result, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+- (void)findCompatibleTrackForCompositionTrack:(AVCompositionTrack *)compositionTrack completionHandler:(void (^ NS_SWIFT_SENDABLE)(AVAssetTrack * _Nullable_result, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
@end
@@ -928,7 +931,7 @@
#if __swift__
API_DEPRECATED("Use load(.variants) instead", macos(10.12, 13.0), ios(15.0, 16.0), tvos(15.0, 16.0), watchos(8.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
#endif
@end
@@ -943,6 +946,58 @@
@interface AVURLAsset (AVURLAssetNSItemProvider) <NSItemProviderReading, NSItemProviderWriting>
@end
+/*!
+ @interface AVMediaExtensionProperties
+ @abstract A class incorporating properties for a MediaExtension
+ @discussion AVMediaExtensionProperties objects are returned from property queries on AVAsset, AVPlayerItemTrack, AVSampleBufferDisplayLayer, or AVSampleBufferVideoRenderer.
+ Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
+*/
+NS_SWIFT_SENDABLE
+API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos)
+@interface AVMediaExtensionProperties : NSObject <NSCopying>
+
+AV_INIT_UNAVAILABLE
+/*!
+ @property extensionName
+ @abstract The name of the MediaExtension.
+ @discussion The localized name of the MediaExtension format reader or video decoder, corresponding to the CFBundleDisplayName.
+*/
+@property (nonatomic, readonly) NSString *extensionName;
+
+/*!
+ @property containingBundleName
+ @abstract The name of the containing application bundle.
+ @discussion The localized name of the application that hosts the MediaExtension.
+*/
+@property (nonatomic, readonly) NSString *containingBundleName;
+
+/*!
+ @property extensionURL
+ @abstract The file URL of the MediaExtension bundle.
+*/
+@property (nonatomic, readonly) NSURL *extensionURL;
+
+/*!
+ @property containingBundleURL
+ @abstract The file URL of the host application for the MediaExtension.
+*/
+@property (nonatomic, readonly) NSURL *containingBundleURL;
+
+@end
+
+API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos)
+@interface AVURLAsset (AVMediaExtension)
+
+/*!
+ @property mediaExtensionProperties
+ @abstract The properties of the MediaExtension format reader for the asset.
+ @discussion If the asset is being decoded using a MediaExtension format reader, this property will return a AVMediaExtensionProperties object describing the extension. If the asset is not being decoded with a MediaExtension format reader, this property will return nil.
+*/
+@property (nonatomic, readonly, nullable) AVMediaExtensionProperties *mediaExtensionProperties;
+
+@end
+
+
#pragma mark --- AVAsset change notifications ---
/*
@@ -954,32 +1009,32 @@
@constant AVAssetDurationDidChangeNotification
@abstract Posted when the duration of an AVFragmentedAsset changes while it's being minded by an AVFragmentedAssetMinder, but only for changes that occur after the status of the value of @"duration" has reached AVKeyValueStatusLoaded.
*/
-AVF_EXPORT NSString *const AVAssetDurationDidChangeNotification API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0));
+AVF_EXPORT NSString *const AVAssetDurationDidChangeNotification API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0), visionos(1.0));
/*!
@constant AVAssetContainsFragmentsDidChangeNotification
@abstract Posted after the value of @"containsFragments" has already been loaded and the AVFragmentedAsset is added to an AVFragmentedAssetMinder, either when 1) fragments are detected in the asset on disk after it had previously contained none or when 2) no fragments are detected in the asset on disk after it had previously contained one or more.
*/
-AVF_EXPORT NSString *const AVAssetContainsFragmentsDidChangeNotification API_AVAILABLE(macos(10.11), ios(12.0), tvos(12.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSString *const AVAssetContainsFragmentsDidChangeNotification API_AVAILABLE(macos(10.11), ios(12.0), tvos(12.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@constant AVAssetWasDefragmentedNotification
@abstract Posted when the asset on disk is defragmented while an AVFragmentedAsset is being minded by an AVFragmentedAssetMinder, but only if the defragmentation occurs after the status of the value of @"canContainFragments" has reached AVKeyValueStatusLoaded.
@discussion After this notification is posted, the value of the asset properties canContainFragments and containsFragments will both be NO.
*/
-AVF_EXPORT NSString *const AVAssetWasDefragmentedNotification API_AVAILABLE(macos(10.11), ios(12.0), tvos(12.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSString *const AVAssetWasDefragmentedNotification API_AVAILABLE(macos(10.11), ios(12.0), tvos(12.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@constant AVAssetChapterMetadataGroupsDidChangeNotification
@abstract Posted when the collection of arrays of timed metadata groups representing chapters of an AVAsset change and when any of the contents of the timed metadata groups change, but only for changes that occur after the status of the value of @"availableChapterLocales" has reached AVKeyValueStatusLoaded.
*/
-AVF_EXPORT NSString *const AVAssetChapterMetadataGroupsDidChangeNotification API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0));
+AVF_EXPORT NSString *const AVAssetChapterMetadataGroupsDidChangeNotification API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0), visionos(1.0));
/*!
@constant AVAssetMediaSelectionGroupsDidChangeNotification
@abstract Posted when the collection of media selection groups provided by an AVAsset changes and when any of the contents of its media selection groups change, but only for changes that occur after the status of the value of @"availableMediaCharacteristicsWithMediaSelectionOptions" has reached AVKeyValueStatusLoaded.
*/
-AVF_EXPORT NSString *const AVAssetMediaSelectionGroupsDidChangeNotification API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0));
+AVF_EXPORT NSString *const AVAssetMediaSelectionGroupsDidChangeNotification API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0), visionos(1.0));
#pragma mark --- AVFragmentedAsset ---
/*!
@@ -989,6 +1044,7 @@
Such media resources include QuickTime movie files and MPEG-4 files that indicate, via an 'mvex' box in their 'moov' box, that they accommodate additional fragments. Media resources of other types may also be supported. To check whether a given instance of AVFragmentedAsset can be used to monitor the addition of fragments, check the value of the AVURLAsset property canContainFragments.
An AVFragmentedAsset is capable of changing the values of certain of its properties and those of its tracks, while an operation that appends fragments to the underlying media resource in in progress, if the AVFragmentedAsset is associated with an instance of AVFragmentedAssetMinder.
@discussion While associated with an AVFragmentedAssetMinder, AVFragmentedAsset posts AVAssetDurationDidChangeNotification whenever new fragments are detected, as appropriate. It may also post AVAssetContainsFragmentsDidChangeNotification and AVAssetWasDefragmentedNotification, as discussed in documentation of those notifications.
+ Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
*/
@protocol AVFragmentMinding
@@ -998,13 +1054,14 @@
@abstract Indicates whether an AVAsset that supports fragment minding is currently associated with a fragment minder, e.g. an instance of AVFragmentedAssetMinder.
@discussion AVAssets that support fragment minding post change notifications only while associated with a fragment minder.
*/
-@property (nonatomic, readonly, getter=isAssociatedWithFragmentMinder) BOOL associatedWithFragmentMinder API_AVAILABLE(macos(10.11), ios(12.0), tvos(12.0), watchos(6.0));
+@property (nonatomic, readonly, getter=isAssociatedWithFragmentMinder) BOOL associatedWithFragmentMinder API_AVAILABLE(macos(10.11), ios(12.0), tvos(12.0), watchos(6.0), visionos(1.0));
@end
@class AVFragmentedAssetInternal;
-API_AVAILABLE(macos(10.11), ios(12.0), tvos(12.0), watchos(6.0))
+NS_SWIFT_SENDABLE
+API_AVAILABLE(macos(10.11), ios(12.0), tvos(12.0), watchos(6.0), visionos(1.0))
@interface AVFragmentedAsset : AVURLAsset <AVFragmentMinding>
{
@private
@@ -1027,7 +1084,7 @@
@abstract The tracks in an asset.
@discussion The value of this property is an array of tracks the asset contains; the tracks are of type AVFragmentedAssetTrack.
*/
-@property (nonatomic, readonly) NSArray<AVFragmentedAssetTrack *> *tracks AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.tracks) instead", macos(10.11, 13.0), ios(12.0, 16.0), tvos(12.0, 16.0), watchos(6.0, 9.0));
+@property (nonatomic, readonly) NSArray<AVFragmentedAssetTrack *> *tracks AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.tracks) instead", macos(10.11, 13.0), ios(12.0, 16.0), tvos(12.0, 16.0), watchos(6.0, 9.0), visionos(1.0, 1.0));
@end
@@ -1045,7 +1102,7 @@
#if __swift__
API_DEPRECATED("Use loadTrack(withTrackID:) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_DEPRECATED_WITH_REPLACEMENT("loadTrackWithTrackID:completionHandler:", macos(10.7, API_TO_BE_DEPRECATED), ios(4.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED), watchos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(visionos);
+API_DEPRECATED("Use loadTrackWithTrackID:completionHandler: instead", macos(10.7, 15.0), ios(4.0, 18.0), tvos(9.0, 18.0), watchos(1.0, 11.0)) API_UNAVAILABLE(visionos);
#endif
/*!
@@ -1056,7 +1113,7 @@
@param completionHandler
A block that is called when the loading is finished, with either the loaded track (which may be nil if no track of the specified trackID is available) or an error.
*/
-- (void)loadTrackWithTrackID:(CMPersistentTrackID)trackID completionHandler:(void (^)(AVFragmentedAssetTrack * _Nullable_result, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+- (void)loadTrackWithTrackID:(CMPersistentTrackID)trackID completionHandler:(void (^ NS_SWIFT_SENDABLE)(AVFragmentedAssetTrack * _Nullable_result, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
/*!
@method tracksWithMediaType:
@@ -1070,7 +1127,7 @@
#if __swift__
API_DEPRECATED("Use loadTracks(withMediaType:) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_DEPRECATED_WITH_REPLACEMENT("loadTracksWithMediaType:completionHandler:", macos(10.7, API_TO_BE_DEPRECATED), ios(4.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED), watchos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(visionos);
+API_DEPRECATED("Use loadTracksWithMediaType:completionHandler: instead", macos(10.7, 15.0), ios(4.0, 18.0), tvos(9.0, 18.0), watchos(1.0, 11.0)) API_UNAVAILABLE(visionos);
#endif
/*!
@@ -1081,7 +1138,7 @@
@param completionHandler
A block that is called when the loading is finished, with either the loaded tracks (which may be empty if no tracks of the specified media type are available) or an error.
*/
-- (void)loadTracksWithMediaType:(AVMediaType)mediaType completionHandler:(void (^)(NSArray<AVFragmentedAssetTrack *> * _Nullable, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+- (void)loadTracksWithMediaType:(AVMediaType)mediaType completionHandler:(void (^ NS_SWIFT_SENDABLE)(NSArray<AVFragmentedAssetTrack *> * _Nullable, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
/*!
@method tracksWithMediaCharacteristic:
@@ -1095,7 +1152,7 @@
#if __swift__
API_DEPRECATED("Use loadTracks(withMediaCharacteristic:) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_DEPRECATED_WITH_REPLACEMENT("loadTracksWithMediaCharacteristic:completionHandler:", macos(10.7, API_TO_BE_DEPRECATED), ios(4.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED), watchos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(visionos);
+API_DEPRECATED("Use loadTracksWithMediaCharacteristic:completionHandler: instead", macos(10.7, 15.0), ios(4.0, 18.0), tvos(9.0, 18.0), watchos(1.0, 11.0)) API_UNAVAILABLE(visionos);
#endif
/*!
@@ -1106,7 +1163,7 @@
@param completionHandler
A block that is called when the loading is finished, with either the loaded tracks (which may be empty if no tracks with the specified characteristic are available) or an error.
*/
-- (void)loadTracksWithMediaCharacteristic:(AVMediaCharacteristic)mediaCharacteristic completionHandler:(void (^)(NSArray<AVFragmentedAssetTrack *> * _Nullable, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+- (void)loadTracksWithMediaCharacteristic:(AVMediaCharacteristic)mediaCharacteristic completionHandler:(void (^ NS_SWIFT_SENDABLE)(NSArray<AVFragmentedAssetTrack *> * _Nullable, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
@end
@@ -1119,7 +1176,7 @@
@class AVFragmentedAssetMinderInternal;
NS_SWIFT_NONSENDABLE
-API_AVAILABLE(macos(10.11), ios(12.0), tvos(12.0), watchos(6.0))
+API_AVAILABLE(macos(10.11), ios(12.0), tvos(12.0), watchos(6.0), visionos(1.0))
@interface AVFragmentedAssetMinder : NSObject
{
@private
@@ -1187,7 +1244,7 @@
@property mayRequireContentKeysForMediaDataProcessing
@abstract Allows AVURLAsset to be added as a content key recipient to an AVContentKeySession.
*/
-@property (nonatomic, readonly) BOOL mayRequireContentKeysForMediaDataProcessing API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(3.3));
+@property (nonatomic, readonly) BOOL mayRequireContentKeysForMediaDataProcessing API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(3.3), visionos(1.0));
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetCache.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetCache.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetCache.h 2024-04-17 08:13:13
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetCache.h 2024-05-30 11:22:40
@@ -28,7 +28,7 @@
Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
*/
NS_SWIFT_SENDABLE
-API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(10.0))
+API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(10.0), visionos(1.0))
@interface AVAssetCache : NSObject
/*
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetDownloadStorageManager.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetDownloadStorageManager.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetDownloadStorageManager.h 2024-04-08 15:38:28
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetDownloadStorageManager.h 2024-05-30 05:30:49
@@ -27,7 +27,7 @@
@group AVAssetDownloadedAssetEvictionPriority string constants
@brief Used by AVAssetDownloadStorageManagementPolicy.
*/
-typedef NSString *AVAssetDownloadedAssetEvictionPriority NS_STRING_ENUM API_AVAILABLE(macos(10.15), ios(11.0)) API_UNAVAILABLE(tvos, watchos);
+typedef NSString *AVAssetDownloadedAssetEvictionPriority NS_STRING_ENUM API_AVAILABLE(macos(10.15), ios(11.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos);
/*!
@enum AVAssetDownloadedAssetEvictionPriority
@@ -38,10 +38,10 @@
@constant AVAssetDownloadedAssetEvictionPriorityDefault
Used to mark assets have the default priority. They will be the first to be purged.
*/
-AVF_EXPORT AVAssetDownloadedAssetEvictionPriority const AVAssetDownloadedAssetEvictionPriorityImportant API_AVAILABLE(macos(10.15), ios(11.0)) API_UNAVAILABLE(tvos, watchos);
-AVF_EXPORT AVAssetDownloadedAssetEvictionPriority const AVAssetDownloadedAssetEvictionPriorityDefault API_AVAILABLE(macos(10.15), ios(11.0)) API_UNAVAILABLE(tvos, watchos);
+AVF_EXPORT AVAssetDownloadedAssetEvictionPriority const AVAssetDownloadedAssetEvictionPriorityImportant API_AVAILABLE(macos(10.15), ios(11.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos);
+AVF_EXPORT AVAssetDownloadedAssetEvictionPriority const AVAssetDownloadedAssetEvictionPriorityDefault API_AVAILABLE(macos(10.15), ios(11.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos);
-API_AVAILABLE(macos(10.15), ios(11.0)) API_UNAVAILABLE(tvos, watchos)
+API_AVAILABLE(macos(10.15), ios(11.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos)
@interface AVAssetDownloadStorageManager : NSObject
/*!
@@ -78,8 +78,7 @@
*/
@class AVAssetDownloadStorageManagementPolicyInternal;
-NS_SWIFT_NONSENDABLE
-API_AVAILABLE(macos(10.15), ios(11.0)) API_UNAVAILABLE(tvos, watchos)
+API_AVAILABLE(macos(10.15), ios(11.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos)
@interface AVAssetDownloadStorageManagementPolicy : NSObject <NSCopying, NSMutableCopying> {
@private
AVAssetDownloadStorageManagementPolicyInternal *_storageManagementPolicy;
@@ -108,7 +107,7 @@
@discussion System will put in best-effort to evict all the assets based on expirationDate before evicting based on priority.
*/
NS_SWIFT_NONSENDABLE
-API_AVAILABLE(macos(10.15), ios(11.0)) API_UNAVAILABLE(tvos, watchos)
+API_AVAILABLE(macos(10.15), ios(11.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos)
@interface AVMutableAssetDownloadStorageManagementPolicy : AVAssetDownloadStorageManagementPolicy
/*
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetDownloadTask.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetDownloadTask.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetDownloadTask.h 2024-04-17 07:14:08
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetDownloadTask.h 2024-05-30 05:00:57
@@ -4,7 +4,7 @@
Framework: AVFoundation
- Copyright 2015-2023 Apple Inc. All rights reserved.
+ Copyright 2015-2024 Apple Inc. All rights reserved.
*/
@@ -28,7 +28,7 @@
The value for this key should be a NSNumber.
@discussion By default, the highest media bitrate will be selected for download.
*/
-AVF_EXPORT NSString *const AVAssetDownloadTaskMinimumRequiredMediaBitrateKey API_AVAILABLE(macos(10.15), ios(9.0)) API_UNAVAILABLE(tvos, watchos);
+AVF_EXPORT NSString *const AVAssetDownloadTaskMinimumRequiredMediaBitrateKey API_DEPRECATED("Use AVAssetDownloadConfiguration:variantQualifiers with assetVariantQualifierWithPredicate using desired comparison value against averageBitRate/peakBitRate instead", macos(10.15, API_TO_BE_DEPRECATED), ios(9.0, API_TO_BE_DEPRECATED), visionos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(tvos, watchos);
/*!
@constant AVAssetDownloadTaskMinimumRequiredPresentationSizeKey
@@ -36,7 +36,7 @@
The value for this key should be a NSValue of CGSize.
@discussion By default, the highest media presentation size will be selected for download.
*/
-AVF_EXPORT NSString *const AVAssetDownloadTaskMinimumRequiredPresentationSizeKey API_AVAILABLE(macos(11.0), ios(14.0)) API_UNAVAILABLE(tvos, watchos);
+AVF_EXPORT NSString *const AVAssetDownloadTaskMinimumRequiredPresentationSizeKey API_DEPRECATED("Use AVAssetDownloadConfiguration:variantQualifiers with predicateForPresentationWidth and predicateForPresentationHeight instead", macos(11.0, API_TO_BE_DEPRECATED), ios(14.0, API_TO_BE_DEPRECATED), visionos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(tvos, watchos);
/*!
@constant AVAssetDownloadTaskMediaSelectionKey
@@ -44,7 +44,7 @@
The value for this key should be an AVMediaSelection.
@discussion By default, media selections for AVAssetDownloadTask will be automatically selected.
*/
-AVF_EXPORT NSString *const AVAssetDownloadTaskMediaSelectionKey API_AVAILABLE(macos(10.15), ios(9.0)) API_UNAVAILABLE(tvos, watchos);
+AVF_EXPORT NSString *const AVAssetDownloadTaskMediaSelectionKey API_DEPRECATED("Use AVAssetDownloadConfiguration:mediaSelections instead", macos(10.15, API_TO_BE_DEPRECATED), ios(9.0, API_TO_BE_DEPRECATED), visionos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(tvos, watchos);
/*!
@constant AVAssetDownloadTaskMediaSelectionPrefersMultichannelKey
@@ -52,7 +52,7 @@
The value for this key should be an NSNumber representing a BOOL.
@discussion By default AVAssetDownloadTask will prefer multichannel by downloading the most capable multichannel rendition available in additon to stereo.
*/
-AVF_EXPORT NSString *const AVAssetDownloadTaskMediaSelectionPrefersMultichannelKey API_AVAILABLE(macos(10.15), ios(13.0)) API_UNAVAILABLE(tvos, watchos);
+AVF_EXPORT NSString *const AVAssetDownloadTaskMediaSelectionPrefersMultichannelKey API_DEPRECATED("Use AVAssetDownloadConfiguration:variantQualifiers with predicateForChannelCount instead", macos(10.15, API_TO_BE_DEPRECATED), ios(13.0, API_TO_BE_DEPRECATED), visionos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(tvos, watchos);
/*!
@constant AVAssetDownloadTaskPrefersLosslessAudioKey
@@ -60,7 +60,7 @@
The value for this key should be an NSNumber representing a BOOL.
@discussion By default AVAssetDownloadTask will prefer lossy audio representation.
*/
-AVF_EXPORT NSString *const AVAssetDownloadTaskPrefersLosslessAudioKey API_AVAILABLE(macos(11.3), ios(14.5)) API_UNAVAILABLE(tvos, watchos);
+AVF_EXPORT NSString *const AVAssetDownloadTaskPrefersLosslessAudioKey API_DEPRECATED("Use AVAssetDownloadConfiguration:variantQualifiers with assetVariantQualifierWithPredicate using [NSPredicate predicateWithFormat:@'%d in audioAttributes.formatIDs', kAudioFormatAppleLossless]", macos(11.3, API_TO_BE_DEPRECATED), ios(14.5, API_TO_BE_DEPRECATED), visionos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(tvos, watchos);
/*!
@constant AVAssetDownloadTaskPrefersHDRKey
@@ -68,7 +68,7 @@
The value for this key should be an NSNumber representing a BOOL.
@discussion By default AVAssetDownloadTask will prefer HDR content.
*/
-AVF_EXPORT NSString *const AVAssetDownloadTaskPrefersHDRKey API_AVAILABLE(macos(11.0), ios(14.0)) API_UNAVAILABLE(tvos, watchos);
+AVF_EXPORT NSString *const AVAssetDownloadTaskPrefersHDRKey API_DEPRECATED("Use AVAssetDownloadConfiguration:variantQualifiers with assetVariantQualifierWithPredicate using [NSPredicate predicateWithFormat:@'videoAttributes.videoRange == %@', AVVideoRangePQ]", macos(11.0, API_TO_BE_DEPRECATED), ios(14.0, API_TO_BE_DEPRECATED), visionos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(tvos, watchos);
/*!
@class AVAssetDownloadTask
@@ -76,7 +76,7 @@
@discussion Should be created with -[AVAssetDownloadURLSession assetDownloadTaskWithURLAsset:assetTitle:assetArtworkData:options:]. To utilize local data for playback for downloads that are in-progress, re-use the URLAsset supplied in initialization. An AVAssetDownloadTask may be instantiated with a destinationURL pointing to an existing asset on disk, for the purpose of completing or augmenting a downloaded asset.
*/
-API_AVAILABLE(macos(10.15), ios(9.0), watchos(10.0)) API_UNAVAILABLE(tvos)
+API_AVAILABLE(macos(10.15), ios(9.0), watchos(10.0), visionos(1.0)) API_UNAVAILABLE(tvos)
@interface AVAssetDownloadTask : NSURLSessionTask
/*!
@@ -96,14 +96,14 @@
@property options
@abstract The options supplied to the download task upon initialization.
*/
-@property (nonatomic, readonly, nullable) NSDictionary<NSString *, id> *options API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly, nullable) NSDictionary<NSString *, id> *options API_DEPRECATED("Use AVAssetDownloadConfiguration instead", macos(10.15, API_TO_BE_DEPRECATED), ios(9.0, API_TO_BE_DEPRECATED), visionos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(watchos);
/*!
@property loadedTimeRanges
@abstract This property provides a collection of time ranges for which the download task has media data already downloaded and playable. The ranges provided might be discontinuous.
@discussion Returns an NSArray of NSValues containing CMTimeRanges.
*/
-@property (nonatomic, readonly) NSArray<NSValue *> *loadedTimeRanges API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly) NSArray<NSValue *> *loadedTimeRanges API_DEPRECATED("Use NSURLSessionTask.progress instead", macos(10.15, API_TO_BE_DEPRECATED), ios(9.0, API_TO_BE_DEPRECATED), visionos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(watchos);
// NSURLRequest and NSURLResponse objects are not available for AVAssetDownloadTask
AV_INIT_UNAVAILABLE
@@ -122,7 +122,7 @@
It is important to configure your download configuration object appropriately before using it to create a download task. Download task makes a copy of the configuration settings you provide and use those settings to configure the task. Once configured, the task object ignores any changes you make to the NSURLSessionConfiguration object. If you need to modify your settings, you must update the download configuration object and use it to create a new download task object.
*/
NS_SWIFT_NONSENDABLE
-API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(10.0))
+API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(10.0), visionos(1.0))
@interface AVAssetDownloadConfiguration : NSObject
AV_INIT_UNAVAILABLE
@@ -132,38 +132,45 @@
@abstract Creates and initializes a download configuration object.
@discussion This method will throw an exception if AVURLAsset has been invalidated.
@param asset
- The asset to create the download configuration for.
+ The asset to create the download configuration for.
@param title
- A human readable title for this asset, expected to be as suitable as possible for the user's preferred languages. Will show up in the usage pane of the settings app.
-*/
+ A human readable title for this asset, expected to be as suitable as possible for the user's preferred languages. Will show up in the usage pane of the settings app.
+ */
+ (instancetype)downloadConfigurationWithAsset:(AVURLAsset *)asset title:(NSString *)title;
/*!
@property assetArtworkData
@abstract NSData representing artwork data for this asset. Optional. May be displayed, for example, by the usage pane of the Settings app. Must work with +[UIImage imageWithData:].
-*/
+ */
@property (nonatomic, copy, nullable) NSData *artworkData;
/*!
@property primaryContentConfiguration
@abstract The primary content for the download.
-*/
+ */
@property (nonatomic, readonly) AVAssetDownloadContentConfiguration *primaryContentConfiguration;
/*!
@property auxiliaryContentConfigurations
@abstract The auxiliary content for the download. Optional.
@discussion By default, auxiliaryContentConfigurations will have one or more default auxiliary content configurations. These content configurations can be augmented with additional content configurations or removed entirely if no auxiliary content is desired.
-*/
+ */
@property (nonatomic, copy) NSArray <AVAssetDownloadContentConfiguration *> *auxiliaryContentConfigurations;
/*!
@property optimizesAuxiliaryContentConfigurations
@abstract Optimizes auxiliary content selection depending on the primary to minimize total number of video renditions downloaded. True by default.
@discussion For example, if the primary content configuration represents stereo renditions and auxiliary content configuration represents multichannel audio renditions, auxiliary multichannel variant will be chosen so as to avoid downloading duplicate video renditions.
-*/
+ */
@property (nonatomic) BOOL optimizesAuxiliaryContentConfigurations;
+/*!
+ @property downloadsInterstitialAssets
+ @abstract Download interstitial assets as listed in the index file. False by default.
+ @discussion 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);
+
@end
/*!
@@ -171,7 +178,7 @@
@abstract Represents the configuration consisting of variant and the variant's media options.
*/
NS_SWIFT_NONSENDABLE
-API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(10.0))
+API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(10.0), visionos(1.0))
@interface AVAssetDownloadContentConfiguration : NSObject <NSCopying>
/*!
@@ -199,7 +206,8 @@
Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
*/
-API_AVAILABLE(macos(10.15), ios(11.0)) API_UNAVAILABLE(tvos, watchos)
+API_DEPRECATED("Use assetDownloadTaskWithConfiguration: instead", macos(10.15, API_TO_BE_DEPRECATED), ios(11.0, API_TO_BE_DEPRECATED), visionos(1.0, API_TO_BE_DEPRECATED))
+API_UNAVAILABLE(tvos, watchos)
@interface AVAggregateAssetDownloadTask : NSURLSessionTask
/*!
@@ -219,9 +227,11 @@
/*!
@protocol AVAssetDownloadDelegate
@abstract Delegate methods to implement when adopting AVAssetDownloadTask.
+ Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
*/
-API_AVAILABLE(macos(10.15), ios(9.0), watchos(10.0)) API_UNAVAILABLE(tvos)
+NS_SWIFT_SENDABLE
+API_AVAILABLE(macos(10.15), ios(9.0), watchos(10.0), visionos(1.0)) API_UNAVAILABLE(tvos)
@protocol AVAssetDownloadDelegate <NSURLSessionTaskDelegate>
@optional
/*!
@@ -235,7 +245,7 @@
@param location
The location the asset has been downloaded to.
*/
-- (void)URLSession:(NSURLSession *)session assetDownloadTask:(AVAssetDownloadTask *)assetDownloadTask didFinishDownloadingToURL:(NSURL *)location API_AVAILABLE(macos(10.15), ios(10.0), watchos(10.0)) API_UNAVAILABLE(tvos);
+- (void)URLSession:(NSURLSession *)session assetDownloadTask:(AVAssetDownloadTask *)assetDownloadTask didFinishDownloadingToURL:(NSURL *)location API_DEPRECATED("Use URLSession:assetDownloadTask:willDownloadToURL: instead", macos(10.15, API_TO_BE_DEPRECATED), ios(10.0, API_TO_BE_DEPRECATED), visionos(1.0, API_TO_BE_DEPRECATED), watchos(10.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(tvos);
/*!
@method URLSession:assetDownloadTask:didLoadTimeRange:totalTimeRangesLoaded:timeRangeExpectedToLoad:
@@ -251,8 +261,7 @@
@param timeRangeExpectedToLoad
A CMTimeRange indicating the single time range that is expected to be loaded when the download is complete.
*/
-- (void)URLSession:(NSURLSession *)session assetDownloadTask:(AVAssetDownloadTask *)assetDownloadTask didLoadTimeRange:(CMTimeRange)timeRange totalTimeRangesLoaded:(NSArray<NSValue *> *)loadedTimeRanges timeRangeExpectedToLoad:(CMTimeRange)timeRangeExpectedToLoad API_AVAILABLE(macos(10.15), ios(9.0)) API_UNAVAILABLE(tvos, watchos);
-
+- (void)URLSession:(NSURLSession *)session assetDownloadTask:(AVAssetDownloadTask *)assetDownloadTask didLoadTimeRange:(CMTimeRange)timeRange totalTimeRangesLoaded:(NSArray<NSValue *> *)loadedTimeRanges timeRangeExpectedToLoad:(CMTimeRange)timeRangeExpectedToLoad API_DEPRECATED("Use NSURLSessionTask.progress instead", macos(10.15, API_TO_BE_DEPRECATED), ios(9.0, API_TO_BE_DEPRECATED), visionos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(tvos, watchos);
/*
@method URLSession:assetDownloadTask:didResolveMediaSelection:
@abstract Method called when the media selection for the download is fully resolved, including any automatic selections.
@@ -263,7 +272,7 @@
@param resolvedMediaSelection
The resolved media selection for the download task. For the best chance of playing back downloaded content without further network I/O, apply this selection to subsequent AVPlayerItems.
*/
-- (void)URLSession:(NSURLSession *)session assetDownloadTask:(AVAssetDownloadTask *)assetDownloadTask didResolveMediaSelection:(AVMediaSelection *)resolvedMediaSelection API_AVAILABLE(macos(10.15), ios(9.0)) API_UNAVAILABLE(tvos, watchos);
+- (void)URLSession:(NSURLSession *)session assetDownloadTask:(AVAssetDownloadTask *)assetDownloadTask didResolveMediaSelection:(AVMediaSelection *)resolvedMediaSelection API_AVAILABLE(macos(10.15), ios(9.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos);
/*
@method URLSession:assetDownloadTask:willDownloadToURL:
@@ -276,7 +285,7 @@
@param location
The file URL this task will download media data to.
*/
-- (void)URLSession:(NSURLSession *)session assetDownloadTask:(AVAssetDownloadTask *)assetDownloadTask willDownloadToURL:(NSURL *)location API_AVAILABLE(watchos(10.0)) API_UNAVAILABLE(macos, ios, tvos);
+- (void)URLSession:(NSURLSession *)session assetDownloadTask:(AVAssetDownloadTask *)assetDownloadTask willDownloadToURL:(NSURL *)location API_AVAILABLE(macos(14.0), ios(18.0), watchos(10.0), visionos(1.0)) API_UNAVAILABLE(tvos);
/*
@method URLSession:aggregateAssetDownloadTask:willDownloadToURL:
@@ -289,7 +298,7 @@
@param location
The file URL this task will download media data to.
*/
-- (void)URLSession:(NSURLSession *)session aggregateAssetDownloadTask:(AVAggregateAssetDownloadTask *)aggregateAssetDownloadTask willDownloadToURL:(NSURL *)location API_AVAILABLE(macos(10.15), ios(11.0)) API_UNAVAILABLE(tvos, watchos);
+- (void)URLSession:(NSURLSession *)session aggregateAssetDownloadTask:(AVAggregateAssetDownloadTask *)aggregateAssetDownloadTask willDownloadToURL:(NSURL *)location API_DEPRECATED("Use URLSession:assetDownloadTask:willDownloadToURL: instead", macos(10.15, API_TO_BE_DEPRECATED), ios(11.0, API_TO_BE_DEPRECATED), visionos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(tvos, watchos);
/*
@method URLSession:aggregateAssetDownloadTask:didCompleteForMediaSelection:
@@ -301,7 +310,7 @@
@param mediaSelection
The AVMediaSelection which is now fully available for offline use.
*/
-- (void)URLSession:(NSURLSession *)session aggregateAssetDownloadTask:(AVAggregateAssetDownloadTask *)aggregateAssetDownloadTask didCompleteForMediaSelection:(AVMediaSelection *)mediaSelection API_AVAILABLE(macos(10.15), ios(11.0)) API_UNAVAILABLE(tvos, watchos);
+- (void)URLSession:(NSURLSession *)session aggregateAssetDownloadTask:(AVAggregateAssetDownloadTask *)aggregateAssetDownloadTask didCompleteForMediaSelection:(AVMediaSelection *)mediaSelection API_DEPRECATED("Use the NSURLSessionDownloadDelegate method instead, URLSession:task:didCompleteWithError:" ,macos(10.15, API_TO_BE_DEPRECATED), ios(11.0, API_TO_BE_DEPRECATED), visionos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(tvos, watchos);
/*
@method URLSession:aggregateAssetDownloadTask:didLoadTimeRange:totalTimeRangesLoaded:timeRangeExpectedToLoad:forMediaSelection:
@@ -319,7 +328,7 @@
@param mediaSelection
The media selection which has additional media data loaded for offline use.
*/
-- (void)URLSession:(NSURLSession *)session aggregateAssetDownloadTask:(AVAggregateAssetDownloadTask *)aggregateAssetDownloadTask didLoadTimeRange:(CMTimeRange)timeRange totalTimeRangesLoaded:(NSArray<NSValue *> *)loadedTimeRanges timeRangeExpectedToLoad:(CMTimeRange)timeRangeExpectedToLoad forMediaSelection:(AVMediaSelection *)mediaSelection API_AVAILABLE(macos(10.15), ios(11.0)) API_UNAVAILABLE(tvos, watchos);
+- (void)URLSession:(NSURLSession *)session aggregateAssetDownloadTask:(AVAggregateAssetDownloadTask *)aggregateAssetDownloadTask didLoadTimeRange:(CMTimeRange)timeRange totalTimeRangesLoaded:(NSArray<NSValue *> *)loadedTimeRanges timeRangeExpectedToLoad:(CMTimeRange)timeRangeExpectedToLoad forMediaSelection:(AVMediaSelection *)mediaSelection API_DEPRECATED("Use NSURLSessionTask.progress: instead", macos(10.15, API_TO_BE_DEPRECATED), ios(11.0, API_TO_BE_DEPRECATED), visionos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(tvos, watchos);
@optional
/*!
@@ -332,7 +341,7 @@
@param variants
The variants chosen. Depends on the environmental condition when the download starts.
*/
-- (void)URLSession:(NSURLSession *)session assetDownloadTask:(AVAssetDownloadTask *)assetDownloadTask willDownloadVariants:(NSArray <AVAssetVariant *> *)variants API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(10.0));
+- (void)URLSession:(NSURLSession *)session assetDownloadTask:(AVAssetDownloadTask *)assetDownloadTask willDownloadVariants:(NSArray <AVAssetVariant *> *)variants API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(10.0), visionos(1.0));
@end
@@ -340,7 +349,7 @@
@class AVAssetDownloadURLSession
@abstract A subclass of NSURLSession to support AVAssetDownloadTask.
*/
-API_AVAILABLE(macos(10.15), ios(9.0), watchos(10.0)) API_UNAVAILABLE(tvos)
+API_AVAILABLE(macos(10.15), ios(9.0), watchos(10.0), visionos(1.0)) API_UNAVAILABLE(tvos)
@interface AVAssetDownloadURLSession : NSURLSession
/*!
@@ -381,7 +390,7 @@
@param options
See AVAssetDownloadTask*Key above. Configures non-default behavior for the download task. Using this parameter is required for downloading non-default media selections for HLS assets.
*/
-- (nullable AVAssetDownloadTask *)assetDownloadTaskWithURLAsset:(AVURLAsset *)URLAsset assetTitle:(NSString *)title assetArtworkData:(nullable NSData *)artworkData options:(nullable NSDictionary<NSString *, id> *)options API_AVAILABLE(macos(10.15), ios(10.0)) API_UNAVAILABLE(tvos, watchos);
+- (nullable AVAssetDownloadTask *)assetDownloadTaskWithURLAsset:(AVURLAsset *)URLAsset assetTitle:(NSString *)title assetArtworkData:(nullable NSData *)artworkData options:(nullable NSDictionary<NSString *, id> *)options API_DEPRECATED("Use assetDownloadTaskWithConfiguration: instead", macos(10.15, API_TO_BE_DEPRECATED), ios(10.0, API_TO_BE_DEPRECATED), visionos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(tvos, watchos);
/*!
@method aggregateAssetDownloadTaskWithURLAsset:mediaSelections:assetTitle:assetArtworkData:options:
@@ -398,7 +407,7 @@
@param options
See AVAssetDownloadTask*Key above. Configures non-default behavior for the download task.
*/
-- (nullable AVAggregateAssetDownloadTask *)aggregateAssetDownloadTaskWithURLAsset:(AVURLAsset *)URLAsset mediaSelections:(NSArray <AVMediaSelection *> *)mediaSelections assetTitle:(NSString *)title assetArtworkData:(nullable NSData *)artworkData options:(nullable NSDictionary<NSString *, id> *)options API_AVAILABLE(macos(10.15), ios(11.0)) API_UNAVAILABLE(tvos, watchos);
+- (nullable AVAggregateAssetDownloadTask *)aggregateAssetDownloadTaskWithURLAsset:(AVURLAsset *)URLAsset mediaSelections:(NSArray <AVMediaSelection *> *)mediaSelections assetTitle:(NSString *)title assetArtworkData:(nullable NSData *)artworkData options:(nullable NSDictionary<NSString *, id> *)options API_DEPRECATED("Use assetDownloadTaskWithConfiguration: instead", macos(10.15, API_TO_BE_DEPRECATED), ios(11.0, API_TO_BE_DEPRECATED), visionos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(tvos, watchos);
/*!
@method assetDownloadTaskWithConfiguration:
@@ -407,7 +416,7 @@
@param downloadConfiguration
The configuration to be used to create the download task.
*/
-- (AVAssetDownloadTask *)assetDownloadTaskWithConfiguration:(AVAssetDownloadConfiguration *)downloadConfiguration API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+- (AVAssetDownloadTask *)assetDownloadTaskWithConfiguration:(AVAssetDownloadConfiguration *)downloadConfiguration API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
// only AVAssetDownloadTasks can be created with AVAssetDownloadURLSession
AV_INIT_UNAVAILABLE
@@ -422,13 +431,13 @@
- (NSURLSessionDownloadTask *)downloadTaskWithRequest:(NSURLRequest *)request NS_UNAVAILABLE;
- (NSURLSessionDownloadTask *)downloadTaskWithURL:(NSURL *)url NS_UNAVAILABLE;
- (NSURLSessionDownloadTask *)downloadTaskWithResumeData:(NSData *)resumeData NS_UNAVAILABLE;
-- (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request completionHandler:(void (^)(NSData *data, NSURLResponse *response, NSError *error))completionHandler NS_UNAVAILABLE;
-- (NSURLSessionDataTask *)dataTaskWithURL:(NSURL *)url completionHandler:(void (^)(NSData *data, NSURLResponse *response, NSError *error))completionHandler NS_UNAVAILABLE;
-- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request fromFile:(NSURL *)fileURL completionHandler:(void (^)(NSData *data, NSURLResponse *response, NSError *error))completionHandler NS_UNAVAILABLE;
-- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request fromData:(nullable NSData *)bodyData completionHandler:(void (^)(NSData *data, NSURLResponse *response, NSError *error))completionHandler NS_UNAVAILABLE;
-- (NSURLSessionDownloadTask *)downloadTaskWithRequest:(NSURLRequest *)request completionHandler:(void (^)(NSURL *location, NSURLResponse *response, NSError *error))completionHandler NS_UNAVAILABLE;
-- (NSURLSessionDownloadTask *)downloadTaskWithURL:(NSURL *)url completionHandler:(void (^)(NSURL *location, NSURLResponse *response, NSError *error))completionHandler NS_UNAVAILABLE;
-- (NSURLSessionDownloadTask *)downloadTaskWithResumeData:(NSData *)resumeData completionHandler:(void (^)(NSURL *location, NSURLResponse *response, NSError *error))completionHandler NS_UNAVAILABLE;
+- (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request completionHandler:(void (^ NS_SWIFT_SENDABLE)(NSData *data, NSURLResponse *response, NSError *error))completionHandler NS_UNAVAILABLE;
+- (NSURLSessionDataTask *)dataTaskWithURL:(NSURL *)url completionHandler:(void (^ NS_SWIFT_SENDABLE)(NSData *data, NSURLResponse *response, NSError *error))completionHandler NS_UNAVAILABLE;
+- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request fromFile:(NSURL *)fileURL completionHandler:(void (^ NS_SWIFT_SENDABLE)(NSData *data, NSURLResponse *response, NSError *error))completionHandler NS_UNAVAILABLE;
+- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request fromData:(nullable NSData *)bodyData completionHandler:(void (^ NS_SWIFT_SENDABLE)(NSData *data, NSURLResponse *response, NSError *error))completionHandler NS_UNAVAILABLE;
+- (NSURLSessionDownloadTask *)downloadTaskWithRequest:(NSURLRequest *)request completionHandler:(void (^ NS_SWIFT_SENDABLE)(NSURL *location, NSURLResponse *response, NSError *error))completionHandler NS_UNAVAILABLE;
+- (NSURLSessionDownloadTask *)downloadTaskWithURL:(NSURL *)url completionHandler:(void (^ NS_SWIFT_SENDABLE)(NSURL *location, NSURLResponse *response, NSError *error))completionHandler NS_UNAVAILABLE;
+- (NSURLSessionDownloadTask *)downloadTaskWithResumeData:(NSData *)resumeData completionHandler:(void (^ NS_SWIFT_SENDABLE)(NSURL *location, NSURLResponse *response, NSError *error))completionHandler NS_UNAVAILABLE;
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetExportSession.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetExportSession.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetExportSession.h 2024-04-17 08:16:26
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetExportSession.h 2024-05-30 05:30:48
@@ -27,44 +27,44 @@
/* These export options can be used to produce movie files with video size appropriate to the device.
The export will not scale the video up from a smaller size. The video will be compressed using
H.264 and the audio will be compressed using AAC. */
-AVF_EXPORT NSString *const AVAssetExportPresetLowQuality API_AVAILABLE(macos(10.11), ios(4.0), tvos(9.0)) API_UNAVAILABLE(watchos);
-AVF_EXPORT NSString *const AVAssetExportPresetMediumQuality API_AVAILABLE(macos(10.11), ios(4.0), tvos(9.0)) API_UNAVAILABLE(watchos);
-AVF_EXPORT NSString *const AVAssetExportPresetHighestQuality API_AVAILABLE(macos(10.11), ios(4.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSString *const AVAssetExportPresetLowQuality API_AVAILABLE(macos(10.11), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSString *const AVAssetExportPresetMediumQuality API_AVAILABLE(macos(10.11), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSString *const AVAssetExportPresetHighestQuality API_AVAILABLE(macos(10.11), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/* These export options can be used to produce movie files with video size appropriate to the device.
The export will not scale the video up from a smaller size. The video will be compressed using
HEVC and the audio will be compressed using AAC. */
-AVF_EXPORT NSString *const AVAssetExportPresetHEVCHighestQuality API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0)) API_UNAVAILABLE(watchos);
-AVF_EXPORT NSString *const AVAssetExportPresetHEVCHighestQualityWithAlpha API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSString *const AVAssetExportPresetHEVCHighestQuality API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSString *const AVAssetExportPresetHEVCHighestQualityWithAlpha API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/* These export options can be used to produce movie files with the specified video size.
The export will not scale the video up from a smaller size. The video will be compressed using
H.264 and the audio will be compressed using AAC. Some devices cannot support some sizes. */
-AVF_EXPORT NSString *const AVAssetExportPreset640x480 API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0)) API_UNAVAILABLE(watchos);
-AVF_EXPORT NSString *const AVAssetExportPreset960x540 API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0)) API_UNAVAILABLE(watchos);
-AVF_EXPORT NSString *const AVAssetExportPreset1280x720 API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0)) API_UNAVAILABLE(watchos);
-AVF_EXPORT NSString *const AVAssetExportPreset1920x1080 API_AVAILABLE(macos(10.7), ios(5.0), tvos(9.0)) API_UNAVAILABLE(watchos);
-AVF_EXPORT NSString *const AVAssetExportPreset3840x2160 API_AVAILABLE(macos(10.10), ios(9.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSString *const AVAssetExportPreset640x480 API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSString *const AVAssetExportPreset960x540 API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSString *const AVAssetExportPreset1280x720 API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSString *const AVAssetExportPreset1920x1080 API_AVAILABLE(macos(10.7), ios(5.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSString *const AVAssetExportPreset3840x2160 API_AVAILABLE(macos(10.10), ios(9.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/* These export options can be used to produce movie files with the specified video size.
The export will not scale the video up from a smaller size. The video will be compressed using
HEVC and the audio will be compressed using AAC. Some devices cannot support some sizes. */
-AVF_EXPORT NSString *const AVAssetExportPresetHEVC1920x1080 API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0)) API_UNAVAILABLE(watchos);
-AVF_EXPORT NSString *const AVAssetExportPresetHEVC1920x1080WithAlpha API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0)) API_UNAVAILABLE(watchos);
-AVF_EXPORT NSString *const AVAssetExportPresetHEVC3840x2160 API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0)) API_UNAVAILABLE(watchos);
-AVF_EXPORT NSString *const AVAssetExportPresetHEVC3840x2160WithAlpha API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0)) API_UNAVAILABLE(watchos);
-AVF_EXPORT NSString *const AVAssetExportPresetHEVC7680x4320 API_AVAILABLE(macos(12.1)) API_UNAVAILABLE(ios, tvos, watchos);
+AVF_EXPORT NSString *const AVAssetExportPresetHEVC1920x1080 API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSString *const AVAssetExportPresetHEVC1920x1080WithAlpha API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSString *const AVAssetExportPresetHEVC3840x2160 API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSString *const AVAssetExportPresetHEVC3840x2160WithAlpha API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSString *const AVAssetExportPresetHEVC7680x4320 API_AVAILABLE(macos(12.1)) API_UNAVAILABLE(ios, tvos, watchos, visionos);
-AVF_EXPORT NSString *const AVAssetExportPresetMVHEVC960x960 API_AVAILABLE(macos(14.0), ios(17.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos);
-AVF_EXPORT NSString *const AVAssetExportPresetMVHEVC1440x1440 API_AVAILABLE(macos(14.0), ios(17.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSString *const AVAssetExportPresetMVHEVC960x960 API_AVAILABLE(macos(14.0), ios(17.0), visionos(1.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSString *const AVAssetExportPresetMVHEVC1440x1440 API_AVAILABLE(macos(14.0), ios(17.0), visionos(1.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos);
/* This export option will produce an audio-only .m4a file with appropriate iTunes gapless playback data */
-AVF_EXPORT NSString *const AVAssetExportPresetAppleM4A API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSString *const AVAssetExportPresetAppleM4A API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/* This export option will cause the media of all tracks to be passed through to the output exactly as stored in the source asset, except for
tracks for which passthrough is not possible, usually because of constraints of the container format as indicated by the specified outputFileType.
This option is not included in the arrays returned by -allExportPresets and -exportPresetsCompatibleWithAsset. */
-AVF_EXPORT NSString *const AVAssetExportPresetPassthrough API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSString *const AVAssetExportPresetPassthrough API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/* This export option will produce a QuickTime movie with Apple ProRes 422 video and LPCM audio. */
AVF_EXPORT NSString *const AVAssetExportPresetAppleProRes422LPCM API_AVAILABLE(macos(10.7), ios(15.0)) API_UNAVAILABLE(tvos, watchos, visionos);
@@ -77,13 +77,13 @@
/* These export options are used to produce files that can be played on the specified Apple devices.
These presets are available for Desktop export only.
The files should have .m4v extensions (or .m4a for exports with audio only sources). */
-AVF_EXPORT NSString *const AVAssetExportPresetAppleM4VCellular API_AVAILABLE(macos(10.7)) API_UNAVAILABLE(ios, tvos, watchos);
-AVF_EXPORT NSString *const AVAssetExportPresetAppleM4ViPod API_AVAILABLE(macos(10.7)) API_UNAVAILABLE(ios, tvos, watchos);
-AVF_EXPORT NSString *const AVAssetExportPresetAppleM4V480pSD API_AVAILABLE(macos(10.7)) API_UNAVAILABLE(ios, tvos, watchos);
-AVF_EXPORT NSString *const AVAssetExportPresetAppleM4VAppleTV API_AVAILABLE(macos(10.7)) API_UNAVAILABLE(ios, tvos, watchos);
-AVF_EXPORT NSString *const AVAssetExportPresetAppleM4VWiFi API_AVAILABLE(macos(10.7)) API_UNAVAILABLE(ios, tvos, watchos);
-AVF_EXPORT NSString *const AVAssetExportPresetAppleM4V720pHD API_AVAILABLE(macos(10.7)) API_UNAVAILABLE(ios, tvos, watchos);
-AVF_EXPORT NSString *const AVAssetExportPresetAppleM4V1080pHD API_AVAILABLE(macos(10.8)) API_UNAVAILABLE(ios, tvos, watchos);
+AVF_EXPORT NSString *const AVAssetExportPresetAppleM4VCellular API_AVAILABLE(macos(10.7)) API_UNAVAILABLE(ios, tvos, watchos, visionos);
+AVF_EXPORT NSString *const AVAssetExportPresetAppleM4ViPod API_AVAILABLE(macos(10.7)) API_UNAVAILABLE(ios, tvos, watchos, visionos);
+AVF_EXPORT NSString *const AVAssetExportPresetAppleM4V480pSD API_AVAILABLE(macos(10.7)) API_UNAVAILABLE(ios, tvos, watchos, visionos);
+AVF_EXPORT NSString *const AVAssetExportPresetAppleM4VAppleTV API_AVAILABLE(macos(10.7)) API_UNAVAILABLE(ios, tvos, watchos, visionos);
+AVF_EXPORT NSString *const AVAssetExportPresetAppleM4VWiFi API_AVAILABLE(macos(10.7)) API_UNAVAILABLE(ios, tvos, watchos, visionos);
+AVF_EXPORT NSString *const AVAssetExportPresetAppleM4V720pHD API_AVAILABLE(macos(10.7)) API_UNAVAILABLE(ios, tvos, watchos, visionos);
+AVF_EXPORT NSString *const AVAssetExportPresetAppleM4V1080pHD API_AVAILABLE(macos(10.8)) API_UNAVAILABLE(ios, tvos, watchos, visionos);
#endif // TARGET_OS_OSX
@@ -119,7 +119,7 @@
AVAssetTrackGroupOutputHandlingPreserveAlternateTracks = (1UL << 0),
AVAssetTrackGroupOutputHandlingDefaultPolicy = AVAssetTrackGroupOutputHandlingNone
-} API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0)) API_UNAVAILABLE(watchos);
+} API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@class AVAssetExportSession
@@ -151,7 +151,8 @@
information about the reason for the failure.
*/
-API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0)) API_UNAVAILABLE(watchos)
+NS_SWIFT_NONSENDABLE
+API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetExportSession : NSObject
{
@private
@@ -167,7 +168,7 @@
@result An instance of AVAssetExportSession.
@discussion If the specified asset belongs to a mutable subclass of AVAsset, AVMutableComposition or AVMutableMovie, the results of any export-related operation are undefined if you mutate the asset after the operation commences. These operations include but are not limited to: 1) testing the compatibility of export presets with the asset, 2) calculating the maximum duration or estimated length of the output file, and 3) the export operation itself.
*/
-+ (nullable instancetype)exportSessionWithAsset:(AVAsset *)asset presetName:(NSString *)presetName API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0)) API_UNAVAILABLE(watchos);
++ (nullable instancetype)exportSessionWithAsset:(AVAsset *)asset presetName:(NSString *)presetName API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@method initWithAsset:presetName:
@@ -179,22 +180,30 @@
*/
- (nullable instancetype)initWithAsset:(AVAsset *)asset presetName:(NSString *)presetName NS_DESIGNATED_INITIALIZER;
-/* AVAssetExortSession properties are key-value observable unless documented otherwise */
+/* AVAssetExportSession properties are key-value observable unless documented otherwise */
+/* Swift apps should use AVAssetExportSession.ProgressStates to monitor the session */
+
/* Indicates the name of the preset with which the AVExportSession was initialized */
@property (nonatomic, readonly) NSString *presetName;
/* Indicates the instance of AVAsset with which the AVExportSession was initialized */
-@property (nonatomic, retain, readonly) AVAsset *asset API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, retain, readonly) AVAsset *asset API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/* Indicates the type of file to be written by the session.
The value of this property must be set before you invoke -exportAsynchronouslyWithCompletionHandler:; otherwise -exportAsynchronouslyWithCompletionHandler: will raise an NSInternalInconsistencyException.
Setting the value of this property to a file type that's not among the session's supported file types will result in an NSInvalidArgumentException. See supportedFileTypes. */
-@property (nonatomic, copy, nullable) AVFileType outputFileType;
-
+@property (nonatomic, copy, nullable) AVFileType outputFileType
+#if defined(__swift__)
+API_DEPRECATED("Use export(to:as:) async throws instead", macos(10.7, API_TO_BE_DEPRECATED), ios(4.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(visionos)
+#endif
+;
/* Indicates the URL of the export session's output. You may use [[UTType typeWithIdentifier:outputFileType] preferredFilenameExtension] to obtain an appropriate path extension for the outputFileType you have specified. For more information, see <UniformTypeIdentifiers/UTType.h>. */
-@property (nonatomic, copy, nullable) NSURL *outputURL;
-
+@property (nonatomic, copy, nullable) NSURL *outputURL
+#if defined(__swift__)
+API_DEPRECATED("Use export(to:as:) async throws instead", macos(10.7, API_TO_BE_DEPRECATED), ios(4.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(visionos)
+#endif
+;
/* indicates that the output file should be optimized for network use, e.g. that a QuickTime movie file should support "fast start" */
@property (nonatomic) BOOL shouldOptimizeForNetworkUse;
@@ -207,13 +216,21 @@
(without parallelization).
If set to NO, export parallelization will not be used.
*/
-@property (nonatomic) BOOL allowsParallelizedExport API_AVAILABLE(macos(14.0)) API_UNAVAILABLE(ios, tvos, watchos); // defaults to YES
+@property (nonatomic) BOOL allowsParallelizedExport API_AVAILABLE(macos(14.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos); // defaults to YES
/* indicates the status of the export session */
-@property (nonatomic, readonly) AVAssetExportSessionStatus status;
+@property (nonatomic, readonly) AVAssetExportSessionStatus status
+#if defined(__swift__)
+API_DEPRECATED("Use progressStates(updateInterval:) instead", macos(10.7, 15.0), ios(4.0, 18.0), tvos(9.0, 18.0)) API_UNAVAILABLE(visionos)
+#endif
+;
/* describes the error that occured if the export status is AVAssetExportSessionStatusFailed */
-@property (nonatomic, readonly, nullable) NSError *error;
+@property (nonatomic, readonly, nullable) NSError *error
+#if defined(__swift__)
+API_DEPRECATED("Use export(to:as:) async throws instead", macos(10.7, 15.0), ios(4.0, 18.0), tvos(9.0, 18.0)) API_UNAVAILABLE(visionos)
+#endif
+;
/*!
@method exportAsynchronouslyWithCompletionHandler:
@@ -229,10 +246,18 @@
that describes the failure can be obtained from the error property.
@discussion Initiates an asynchronous export operation and returns immediately.
*/
-- (void)exportAsynchronouslyWithCompletionHandler:(void (^)(void))handler;
+- (void)exportAsynchronouslyWithCompletionHandler:(void (^ NS_SWIFT_SENDABLE)(void))handler
+#if defined(__swift__)
+API_DEPRECATED_WITH_REPLACEMENT("export(to:as:) async throws", macos(10.7, 15.0), ios(4.0, 18.0), tvos(9.0, 18.0)) API_UNAVAILABLE(visionos)
+#endif
+;
/* Specifies the progress of the export on a scale from 0 to 1.0. A value of 0 means the export has not yet begun, A value of 1.0 means the export is complete. This property is not key-value observable. */
-@property (nonatomic, readonly) float progress;
+@property (nonatomic, readonly) float progress
+#if defined(__swift__)
+API_DEPRECATED("Use progressStates(updateInterval:) instead", macos(10.7, API_TO_BE_DEPRECATED), ios(4.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(visionos)
+#endif
+;
/*!
@method cancelExport
@@ -243,7 +268,7 @@
@end
-API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetExportSession (AVAssetExportSessionPresets)
/*!
@@ -284,11 +309,11 @@
@param outputFileType An AVFileType indicating a file type to check; or nil, to query whether there are any compatible types.
@param handler A block called with the compatibility result.
*/
-+ (void)determineCompatibilityOfExportPreset:(NSString *)presetName withAsset:(AVAsset *)asset outputFileType:(nullable AVFileType)outputFileType completionHandler:(void (^)(BOOL compatible))handler API_AVAILABLE(macos(10.9), ios(6.0), tvos(9.0)) API_UNAVAILABLE(watchos) NS_SWIFT_ASYNC_NAME(compatibility(ofExportPreset:with:outputFileType:));
++ (void)determineCompatibilityOfExportPreset:(NSString *)presetName withAsset:(AVAsset *)asset outputFileType:(nullable AVFileType)outputFileType completionHandler:(void (^ NS_SWIFT_SENDABLE)(BOOL compatible))handler API_AVAILABLE(macos(10.9), ios(6.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos) NS_SWIFT_ASYNC_NAME(compatibility(ofExportPreset:with:outputFileType:));
@end // AVAssetExportSessionPresets
-API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetExportSession (AVAssetExportSessionFileTypes)
/* Indicates the types of files the target can write, according to the preset the target was initialized with.
@@ -302,24 +327,24 @@
Called when the inspection completes with an array of file types the ExportSession can write. Note that this may have a count of zero.
@discussion This method is different than the supportedFileTypes property in that it performs an inspection of the AVAsset in order to determine its compatibility with each of the session's supported file types.
*/
-- (void)determineCompatibleFileTypesWithCompletionHandler:(void (^)(NSArray<AVFileType> *compatibleFileTypes))handler API_AVAILABLE(macos(10.9), ios(6.0), tvos(9.0)) API_UNAVAILABLE(watchos) NS_SWIFT_ASYNC_NAME(getter:compatibleFileTypes());
+- (void)determineCompatibleFileTypesWithCompletionHandler:(void (^ NS_SWIFT_SENDABLE)(NSArray<AVFileType> *compatibleFileTypes))handler API_AVAILABLE(macos(10.9), ios(6.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos) NS_SWIFT_ASYNC_NAME(getter:compatibleFileTypes());
@end // AVAssetExportSessionFileTypes
-API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetExportSession (AVAssetExportSessionDurationAndLength)
/* Specifies a time range to be exported from the source. The default timeRange of an export session is kCMTimeZero..kCMTimePositiveInfinity, meaning that the full duration of the asset will be exported. */
@property (nonatomic) CMTimeRange timeRange;
/* Provides an estimate of the maximum duration of exported media that is possible given the source asset, the export preset, and the current value of fileLengthLimit. The export will not stop when it reaches this maximum duration; set the timeRange property to export only a certain time range. */
-@property (nonatomic, readonly) CMTime maxDuration API_DEPRECATED_WITH_REPLACEMENT("estimateMaximumDurationWithCompletionHandler", macos(10.14, API_TO_BE_DEPRECATED), ios(4.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(watchos, visionos);
+@property (nonatomic, readonly) CMTime maxDuration API_DEPRECATED("Use estimateMaximumDurationWithCompletionHandler: instead", macos(10.14, 15.0), ios(4.0, 18.0), tvos(9.0, 18.0)) API_UNAVAILABLE(watchos, visionos);
/* Indicates the estimated byte size of exported file. Returns zero when export preset is AVAssetExportPresetPassthrough, AVAssetExportPresetAppleProRes422LPCM or AVAssetExportPresetAppleProRes4444LPCM. This property will also return zero if a numeric value (ie. not invalid, indefinite, or infinite) for the timeRange property has not been set. Note that the returned value does not take into account the source asset information. For a more accurate estimation, use estimateOutputFileLengthWithCompletionHandler. */
-@property (nonatomic, readonly) long long estimatedOutputFileLength API_DEPRECATED_WITH_REPLACEMENT("estimateOutputFileLengthWithCompletionHandler", macos(10.9, API_TO_BE_DEPRECATED), ios(5.0, API_TO_BE_DEPRECATED), tvos(5.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(watchos, visionos);
+@property (nonatomic, readonly) long long estimatedOutputFileLength API_DEPRECATED("Use estimateOutputFileLengthWithCompletionHandler: instead", macos(10.9, 15.0), ios(5.0, 18.0), tvos(5.0, 18.0)) API_UNAVAILABLE(watchos, visionos);
/* Indicates the file length that the output of the session should not exceed. Depending on the content of the source asset, it is possible for the output to slightly exceed the file length limit. The length of the output file should be tested if you require that a strict limit be observed before making use of the output. See also maxDuration and timeRange. */
-@property (nonatomic) long long fileLengthLimit API_AVAILABLE(macos(10.14), ios(4.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic) long long fileLengthLimit API_AVAILABLE(macos(10.14), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@method estimateMaximumDurationWithCompletionHandler:
@@ -328,7 +353,7 @@
@param handler
A block called with the estimated maximum duration, or kCMTimeInvalid if an error occurs. The error parameter will be non-nil if an error occurs.
*/
-- (void)estimateMaximumDurationWithCompletionHandler:(void (^)(CMTime estimatedMaximumDuration, NSError * _Nullable error ))handler API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0)) API_UNAVAILABLE(watchos) NS_SWIFT_ASYNC_NAME(getter:estimatedMaximumDuration());
+- (void)estimateMaximumDurationWithCompletionHandler:(void (^ NS_SWIFT_SENDABLE)(CMTime estimatedMaximumDuration, NSError * _Nullable error ))handler API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), visionos(1.0)) API_UNAVAILABLE(watchos) NS_SWIFT_ASYNC_NAME(getter:estimatedMaximumDuration());
/*!
@method estimateOutputFileLengthWithCompletionHandler:
@@ -337,11 +362,11 @@
@param handler
A block called with the estimated output file length in bytes, if it can be determined; 0 otherwise. The error parameter will be non-nil if an error occurs.
*/
-- (void)estimateOutputFileLengthWithCompletionHandler:(void (^)(int64_t estimatedOutputFileLength, NSError * _Nullable error ))handler API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0)) API_UNAVAILABLE(watchos) NS_SWIFT_ASYNC_NAME(getter:estimatedOutputFileLengthInBytes());
+- (void)estimateOutputFileLengthWithCompletionHandler:(void (^ NS_SWIFT_SENDABLE)(int64_t estimatedOutputFileLength, NSError * _Nullable error ))handler API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), visionos(1.0)) API_UNAVAILABLE(watchos) NS_SWIFT_ASYNC_NAME(getter:estimatedOutputFileLengthInBytes());
@end // AVAssetExportSessionDurationAndLength
-API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetExportSession (AVAssetExportSessionMetadata)
/* Specifies an NSArray of AVMetadataItems that are to be written to the output file by the export session.
@@ -352,17 +377,17 @@
/* Specifies a filter object to be used during export to determine which metadata items should be transferred from the source asset.
If the value of this key is nil, no filter will be applied. This is the default.
The filter will not be applied to metadata set with via the metadata property. To apply the filter to metadata before it is set on the metadata property, see the methods in AVMetadataItem's AVMetadataItemArrayFiltering category. */
-@property (nonatomic, retain, nullable) AVMetadataItemFilter *metadataItemFilter API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, retain, nullable) AVMetadataItemFilter *metadataItemFilter API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@end // AVAssetExportSessionMetadata
-API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetExportSession (AVAssetExportSessionMediaProcessing)
/* Indicates the processing algorithm used to manage audio pitch for scaled audio edits.
Constants for various time pitch algorithms, e.g. AVAudioTimePitchAlgorithmSpectral, are defined in AVAudioProcessingSettings.h. An NSInvalidArgumentException will be raised if this property is set to a value other than the constants defined in that file.
The default value is AVAudioTimePitchAlgorithmSpectral. */
-@property (nonatomic, copy) AVAudioTimePitchAlgorithm audioTimePitchAlgorithm API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, copy) AVAudioTimePitchAlgorithm audioTimePitchAlgorithm API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/* Indicates whether non-default audio mixing is enabled for export and supplies the parameters for audio mixing. Ignored when export preset is AVAssetExportPresetPassthrough. */
@property (nonatomic, copy, nullable) AVAudioMix *audioMix;
@@ -371,7 +396,7 @@
@property (nonatomic, copy, nullable) AVVideoComposition *videoComposition;
/* Indicates the custom video compositor instance used, if any */
-@property (nonatomic, readonly, nullable) id <AVVideoCompositing> customVideoCompositor API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly, nullable) id <AVVideoCompositing> customVideoCompositor API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property audioTrackGroupHandling
@@ -383,11 +408,11 @@
If necessary, use the trackGroups property of AVAsset to determine whether any audio track groups are present.
The AVAudioMix property is not allowed to be used when also specifying alternate track output handling. An exception will be thrown if both are specified.
*/
-@property (nonatomic) AVAssetTrackGroupOutputHandling audioTrackGroupHandling API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic) AVAssetTrackGroupOutputHandling audioTrackGroupHandling API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@end // AVAssetExportSessionMediaProcessing
-API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetExportSession (AVAssetExportSessionMultipass)
/*!
@@ -402,7 +427,7 @@
This property cannot be set after the export has started.
*/
-@property (nonatomic) BOOL canPerformMultiplePassesOverSourceMediaData API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic) BOOL canPerformMultiplePassesOverSourceMediaData API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property directoryForTemporaryFiles
@@ -416,7 +441,7 @@
This property cannot be set after the export has started. The export will fail if the URL points to a location that is not a directory, does not exist, is not on the local file system, or if a file cannot be created in this directory (for example, due to insufficient permissions or sandboxing restrictions).
*/
-@property (nonatomic, copy, nullable) NSURL *directoryForTemporaryFiles API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, copy, nullable) NSURL *directoryForTemporaryFiles API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@end // AVAssetExportSessionMultipass
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetImageGenerator.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetImageGenerator.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetImageGenerator.h 2024-04-17 08:16:01
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetImageGenerator.h 2024-05-30 05:00:57
@@ -4,7 +4,7 @@
Framework: AVFoundation
- Copyright 2010-2022 Apple Inc. All rights reserved.
+ Copyright 2010-2024 Apple Inc. All rights reserved.
*/
@@ -37,7 +37,7 @@
@abstract
The type of an aperture mode.
*/
-typedef NSString * AVAssetImageGeneratorApertureMode NS_STRING_ENUM API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+typedef NSString * AVAssetImageGeneratorApertureMode NS_STRING_ENUM API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@constant AVAssetImageGeneratorApertureModeCleanAperture
@@ -45,7 +45,7 @@
@discussion
An image's clean aperture is a region of video free from transition artifacts caused by the encoding of the signal.
*/
-AVF_EXPORT AVAssetImageGeneratorApertureMode const AVAssetImageGeneratorApertureModeCleanAperture API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT AVAssetImageGeneratorApertureMode const AVAssetImageGeneratorApertureModeCleanAperture API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@constant AVAssetImageGeneratorApertureModeProductionAperture
@@ -53,7 +53,7 @@
@discussion
The image is not cropped to the clean aperture region, but it is scaled according to the pixel aspect ratio. Use this option when you want to see all the pixels in your video, including the edges.
*/
-AVF_EXPORT AVAssetImageGeneratorApertureMode const AVAssetImageGeneratorApertureModeProductionAperture API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT AVAssetImageGeneratorApertureMode const AVAssetImageGeneratorApertureModeProductionAperture API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@constant AVAssetImageGeneratorApertureModeEncodedPixels
@@ -61,8 +61,21 @@
@discussion
The image is not cropped to the clean aperture region and is not scaled according to the pixel aspect ratio. The encoded dimensions of the image description are displayed.
*/
-AVF_EXPORT AVAssetImageGeneratorApertureMode const AVAssetImageGeneratorApertureModeEncodedPixels API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT AVAssetImageGeneratorApertureMode const AVAssetImageGeneratorApertureModeEncodedPixels API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+/*!
+ @enum AVAssetImageGeneratorDynamicRangePolicy
+ @abstract Configures the video dynamic range for the output CGImage
+ @constant AVAssetImageGeneratorDynamicRangePolicyForceSDR
+ Default. Force standard dynamic range by converting PQ or HLG transfer functions to 709, while maintaining color primaries and matrix.
+ @constant AVAssetImageGeneratorDynamicRangePolicyMatchSource
+ SDR movies will vend SDR CGImages matching the source color parameters. HDR movies will vend HDR CGImages matching the source color parameters.
+ HTTP Live Streaming assets will currently vend only SDR CGImages.
+*/
+typedef NSString *AVAssetImageGeneratorDynamicRangePolicy NS_TYPED_ENUM API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos);
+ AVF_EXPORT AVAssetImageGeneratorDynamicRangePolicy const AVAssetImageGeneratorDynamicRangePolicyForceSDR API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos);
+ AVF_EXPORT AVAssetImageGeneratorDynamicRangePolicy const AVAssetImageGeneratorDynamicRangePolicyMatchSource API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos);
+
typedef NS_ENUM(NSInteger, AVAssetImageGeneratorResult)
{
AVAssetImageGeneratorSucceeded = 0,
@@ -70,7 +83,7 @@
AVAssetImageGeneratorCancelled = 2,
};
-API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetImageGenerator : NSObject
{
@private
@@ -79,7 +92,7 @@
AV_INIT_UNAVAILABLE
/* Indicates the instance of AVAsset with which the AVAssetImageGenerator was initialized */
-@property (nonatomic, readonly) AVAsset *asset API_AVAILABLE(macos(10.9), ios(6.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly) AVAsset *asset API_AVAILABLE(macos(10.9), ios(6.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/* Specifies whether or not to apply the track's preferredTransform (see -[AVAssetTrack preferredTransform]) when extracting an image from the asset.
Default is NO. Only rotation by 90, 180, or 270 degrees is supported. */
@@ -94,6 +107,13 @@
@property (nonatomic, copy, nullable) AVAssetImageGeneratorApertureMode apertureMode;
/*!
+ @property dynamicRangePolicy
+ @abstract Configures the video dynamic range for the output CGImage
+ @discussion Default is AVAssetImageGeneratorDynamicRangePolicyForceSDR
+*/
+@property (nonatomic, copy) AVAssetImageGeneratorDynamicRangePolicy dynamicRangePolicy API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos);
+
+/*!
@property videoComposition
@abstract Specifies the video composition to use when extracting images from assets with multiple video tracks.
@discussion If no videoComposition is specified, only the first enabled video track will be used.
@@ -107,13 +127,13 @@
@property (nonatomic, copy, nullable) AVVideoComposition *videoComposition;
/* Indicates the custom video compositor instance used, if any */
-@property (nonatomic, readonly, nullable) id <AVVideoCompositing> customVideoCompositor API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly, nullable) id <AVVideoCompositing> customVideoCompositor API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/* The actual time of the generated images will be within the range [requestedTime-toleranceBefore, requestedTime+toleranceAfter] and may differ from the requested time for efficiency.
Pass kCMTimeZero for both toleranceBefore and toleranceAfter to request frame-accurate image generation; this may incur additional decoding delay.
Default is kCMTimePositiveInfinity. */
-@property (nonatomic) CMTime requestedTimeToleranceBefore API_AVAILABLE(macos(10.7), ios(5.0), tvos(9.0)) API_UNAVAILABLE(watchos);
-@property (nonatomic) CMTime requestedTimeToleranceAfter API_AVAILABLE(macos(10.7), ios(5.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic) CMTime requestedTimeToleranceBefore API_AVAILABLE(macos(10.7), ios(5.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic) CMTime requestedTimeToleranceAfter API_AVAILABLE(macos(10.7), ios(5.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@method assetImageGeneratorWithAsset:
@@ -173,7 +193,7 @@
On iOS and tvOS, it is particularly important to avoid blocking. To preserve responsiveness, a synchronous request that blocks for too long (eg, a request to generate an image from an asset on a slow HTTP server) may lead to media services being reset.
*/
-- (nullable CGImageRef)copyCGImageAtTime:(CMTime)requestedTime actualTime:(nullable CMTime *)actualTime error:(NSError * _Nullable * _Nullable)outError CF_RETURNS_RETAINED API_DEPRECATED_WITH_REPLACEMENT("generateCGImageAsynchronouslyForTime:completionHandler:", macos(10.7, API_TO_BE_DEPRECATED), ios(4.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(watchos, visionos);
+- (nullable CGImageRef)copyCGImageAtTime:(CMTime)requestedTime actualTime:(nullable CMTime *)actualTime error:(NSError * _Nullable * _Nullable)outError CF_RETURNS_RETAINED API_DEPRECATED("Use generateCGImageAsynchronouslyForTime:completionHandler: instead", macos(10.7, 15.0), ios(4.0, 18.0), tvos(9.0, 18.0)) API_UNAVAILABLE(watchos, visionos);
/* error object indicates the reason for failure if the result is AVAssetImageGeneratorFailed */
typedef void (^AVAssetImageGeneratorCompletionHandler)(CMTime requestedTime, CGImageRef _Nullable image, CMTime actualTime, AVAssetImageGeneratorResult result, NSError * _Nullable error);
@@ -204,7 +224,7 @@
The generated image is not retained. Clients should retain the image if they wish it to persist after the completion handler returns.
If image generation succeeds, the `image` parameter to the completion handler will be non-NULL and the `error` parameter will be nil. If image generation fails or was cancelled, the `image` parameter will be NULL and the `error` parameter will describe what went wrong. For cancelled images, the returned error will be AVErrorOperationCancelled.
*/
-- (void)generateCGImageAsynchronouslyForTime:(CMTime)requestedTime completionHandler:(void (^)(CGImageRef _Nullable image, CMTime actualTime, NSError * _Nullable error))handler NS_REFINED_FOR_SWIFT_ASYNC(2) API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0)) API_UNAVAILABLE(watchos);
+- (void)generateCGImageAsynchronouslyForTime:(CMTime)requestedTime completionHandler:(void (^ NS_SWIFT_SENDABLE)(CGImageRef _Nullable image, CMTime actualTime, NSError * _Nullable error))handler NS_REFINED_FOR_SWIFT_ASYNC(2) API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@method cancelAllCGImageGeneration
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetPlaybackAssistant.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetPlaybackAssistant.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetPlaybackAssistant.h 2024-04-17 08:13:14
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetPlaybackAssistant.h 2024-05-30 11:22:41
@@ -15,29 +15,36 @@
NS_ASSUME_NONNULL_BEGIN
-typedef NSString *AVAssetPlaybackConfigurationOption NS_STRING_ENUM API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0));
+typedef NSString *AVAssetPlaybackConfigurationOption NS_STRING_ENUM API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0), visionos(1.0));
/*!
@constant AVAssetPlaybackConfigurationOptionStereoVideo
- @abstract Indicates whether or not the asset can render stereo video.
+ @abstract Indicates whether or not the asset can be rendered as stereo video.
@discussion Clients may use this property to determine whether to configure stereo video rendering.
*/
-AVF_EXPORT AVAssetPlaybackConfigurationOption const AVAssetPlaybackConfigurationOptionStereoVideo API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0));
+AVF_EXPORT AVAssetPlaybackConfigurationOption const AVAssetPlaybackConfigurationOptionStereoVideo API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0), visionos(1.0));
/*!
@constant AVAssetPlaybackConfigurationOptionStereoMultiviewVideo
- @abstract Indicates whether or not the asset can render stereo video and is also in a multiview compression format.
+ @abstract Indicates whether or not the asset can rendered as stereo video and is also in a multiview compression format.
@discussion Clients may use this property to determine whether to configure stereo video rendering.
*/
-AVF_EXPORT AVAssetPlaybackConfigurationOption const AVAssetPlaybackConfigurationOptionStereoMultiviewVideo API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0));
+AVF_EXPORT AVAssetPlaybackConfigurationOption const AVAssetPlaybackConfigurationOptionStereoMultiviewVideo API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0), visionos(1.0));
/*!
+ @constant AVAssetPlaybackConfigurationOptionSpatialVideo
+ @abstract Indicates whether or not the asset can be rendered as spatial video.
+ @discussion Clients may use this property to determine whether to configure spatial video rendering.
+ */
+AVF_EXPORT AVAssetPlaybackConfigurationOption const AVAssetPlaybackConfigurationOptionSpatialVideo API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), watchos(11.0), visionos(2.0));
+
+/*!
@class AVAssetPlaybackAssistant
@abstract AVAssetPlaybackAssistant provides playback information for an asset.
@discussion Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
*/
NS_SWIFT_SENDABLE
-API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0))
+API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0), visionos(1.0))
@interface AVAssetPlaybackAssistant : NSObject
AV_INIT_UNAVAILABLE
@@ -58,7 +65,7 @@
Called with an array of AVAssetPlaybackConfigurationOption values describing capabilities of the asset.
@discussion completionHandler is called when all of the AVAssetPlaybackConfigurationOption values have been loaded. If AVAssetPlaybackAssistant encounters failures when inspecting the contents of the asset, it will return no AVAssetPlaybackConfigurationOptions associated with those contents.
*/
-- (void)loadPlaybackConfigurationOptionsWithCompletionHandler:(void (^)(NSArray<AVAssetPlaybackConfigurationOption> *playbackConfigurationOptions))completionHandler NS_SWIFT_ASYNC_NAME(getter:playbackConfigurationOptions());
+- (void)loadPlaybackConfigurationOptionsWithCompletionHandler:(void (^ NS_SWIFT_SENDABLE)(NSArray<AVAssetPlaybackConfigurationOption> *playbackConfigurationOptions))completionHandler NS_SWIFT_ASYNC_NAME(getter:playbackConfigurationOptions());
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetReader.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetReader.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetReader.h 2024-04-17 06:57:28
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetReader.h 2024-05-30 05:30:48
@@ -58,7 +58,7 @@
AVAssetReaderAudioMixOutput mixes multiple audio tracks of the asset after reading them, while AVAssetReaderVideoCompositionOutput composites multiple video tracks after reading them.
*/
-API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetReader : NSObject
{
@private
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetReaderOutput.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetReaderOutput.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetReaderOutput.h 2024-04-17 08:16:00
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetReaderOutput.h 2024-05-30 05:00:56
@@ -4,7 +4,7 @@
Framework: AVFoundation
- Copyright 2010-2017 Apple Inc. All rights reserved.
+ Copyright 2010-2023 Apple Inc. All rights reserved.
*/
@@ -38,7 +38,7 @@
IMPORTANT PERFORMANCE NOTE: Make sure to set the alwaysCopiesSampleData property to NO if you do not need to modify the sample data in-place, to avoid unnecessary and inefficient copying.
*/
-API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetReaderOutput : NSObject
{
@private
@@ -67,7 +67,7 @@
This property throws an exception if a value is set after reading has started (the asset reader has progressed beyond AVAssetReaderStatusUnknown).
*/
-@property (nonatomic) BOOL alwaysCopiesSampleData API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic) BOOL alwaysCopiesSampleData API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@method copyNextSampleBuffer
@@ -89,7 +89,7 @@
@end
-API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetReaderOutput (AVAssetReaderOutputRandomAccess)
/*!
@@ -104,7 +104,7 @@
This property throws an exception if a value is set after reading has started (the asset reader has progressed beyond AVAssetReaderStatusUnknown).
*/
-@property (nonatomic) BOOL supportsRandomAccess API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic) BOOL supportsRandomAccess API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@method resetForReadingTimeRanges:
@@ -135,7 +135,7 @@
- cannot be called without setting "supportsRandomAccess" to YES
- cannot be called after calling -markConfigurationAsFinal
*/
-- (void)resetForReadingTimeRanges:(NSArray<NSValue *> *)timeRanges API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+- (void)resetForReadingTimeRanges:(NSArray<NSValue *> *)timeRanges API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@method markConfigurationAsFinal
@@ -149,7 +149,7 @@
Once this method has been called, further invocations of -resetForReadingTimeRanges: are disallowed.
*/
-- (void)markConfigurationAsFinal API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+- (void)markConfigurationAsFinal API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@end
@@ -163,7 +163,7 @@
@discussion
Clients can read the media data of an asset track by adding an instance of AVAssetReaderTrackOutput to an AVAssetReader using the -[AVAssetReader addOutput:] method. The track's media samples can either be read in the format in which they are stored in the asset, or they can be converted to a different format.
*/
-API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetReaderTrackOutput : AVAssetReaderOutput
{
@private
@@ -281,7 +281,7 @@
- a value is set value after reading has started
- a value is set other than AVAudioTimePitchAlgorithmSpectral, AVAudioTimePitchAlgorithmTimeDomain, or AVAudioTimePitchAlgorithmVarispeed.
*/
-@property (nonatomic, copy) AVAudioTimePitchAlgorithm audioTimePitchAlgorithm API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, copy) AVAudioTimePitchAlgorithm audioTimePitchAlgorithm API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@end
@@ -296,7 +296,7 @@
@discussion
Clients can read the audio data mixed from one or more asset tracks by adding an instance of AVAssetReaderAudioMixOutput to an AVAssetReader using the -[AVAssetReader addOutput:] method.
*/
-API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetReaderAudioMixOutput : AVAssetReaderOutput
{
@private
@@ -397,7 +397,7 @@
The default value is AVAudioTimePitchAlgorithmSpectral.
*/
-@property (nonatomic, copy) AVAudioTimePitchAlgorithm audioTimePitchAlgorithm API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, copy) AVAudioTimePitchAlgorithm audioTimePitchAlgorithm API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@end
@@ -412,7 +412,7 @@
@discussion
Clients can read the video frames composited from one or more asset tracks by adding an instance of AVAssetReaderVideoCompositionOutput to an AVAssetReader using the -[AVAssetReader addOutput:] method.
*/
-API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetReaderVideoCompositionOutput : AVAssetReaderOutput
{
@private
@@ -516,7 +516,7 @@
@discussion
This property is nil if there is no video compositor, or if the internal video compositor is in use.
*/
-@property (nonatomic, readonly, nullable) id <AVVideoCompositing> customVideoCompositor API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly, nullable) id <AVVideoCompositing> customVideoCompositor API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@end
@@ -530,7 +530,7 @@
Defines an interface for reading metadata, packaged as instances of AVTimedMetadataGroup, from a single AVAssetReaderTrackOutput object.
*/
-API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetReaderOutputMetadataAdaptor : NSObject
{
@private
@@ -608,7 +608,7 @@
An adaptor class for reading instances of AVCaptionGroup from a track containing timed text (i.e. subtitles or closed captions).
*/
-API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos)
+API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos)
@interface AVAssetReaderOutputCaptionAdaptor : NSObject
{
@private
@@ -682,7 +682,7 @@
@abstract
Category of AVAssetReaderOutputCaptionAdaptor for caption validation handling
*/
-API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos)
+API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos)
@interface AVAssetReaderOutputCaptionAdaptor (AVAssetReaderCaptionValidation)
/*!
@@ -702,7 +702,7 @@
@discussion
A client can implement the protocol on its own class which processes the caption validation calls.
*/
-API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos)
+API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos)
@protocol AVAssetReaderCaptionValidationHandling <NSObject>
@optional
@@ -737,7 +737,7 @@
Since no sample data is ever returned by instances of AVAssetReaderSampleReferenceOutput, the value of the alwaysCopiesSampleData property is ignored.
*/
-API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetReaderSampleReferenceOutput : AVAssetReaderOutput
{
@private
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetResourceLoader.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetResourceLoader.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetResourceLoader.h 2024-04-17 06:57:29
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetResourceLoader.h 2024-05-30 02:57:30
@@ -29,7 +29,7 @@
@class AVAssetResourceRenewalRequest;
@class AVAssetResourceLoaderInternal;
-API_AVAILABLE(macos(10.9), ios(6.0), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.9), ios(6.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetResourceLoader : NSObject {
@private
AVAssetResourceLoaderInternal *_resourceLoader;
@@ -95,7 +95,7 @@
If an AVURLAsset is added to an AVContentKeySession object and a delegate is set on its AVAssetResourceLoader, that delegate's resourceLoader:shouldWaitForLoadingOfRequestedResource: method must specify which custom URL requests should be handled as content keys. This is done by returning YES and passing either AVStreamingKeyDeliveryPersistentContentKeyType or AVStreamingKeyDeliveryContentKeyType into -[AVAssetResourceLoadingContentInformationRequest setContentType:] and then calling -[AVAssetResourceLoadingRequest finishLoading].
*/
-- (BOOL)resourceLoader:(AVAssetResourceLoader *)resourceLoader shouldWaitForLoadingOfRequestedResource:(AVAssetResourceLoadingRequest *)loadingRequest API_AVAILABLE(macos(10.9), ios(6.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+- (BOOL)resourceLoader:(AVAssetResourceLoader *)resourceLoader shouldWaitForLoadingOfRequestedResource:(AVAssetResourceLoadingRequest *)loadingRequest API_AVAILABLE(macos(10.9), ios(6.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@method resourceLoader:shouldWaitForRenewalOfRequestedResource:
@@ -113,7 +113,7 @@
If an AVURLAsset is added to an AVContentKeySession object and a delegate is set on its AVAssetResourceLoader, that delegate's resourceLoader:shouldWaitForRenewalOfRequestedResource:renewalRequest method must specify which custom URL requests should be handled as content keys. This is done by returning YES and passing either AVStreamingKeyDeliveryPersistentContentKeyType or AVStreamingKeyDeliveryContentKeyType into -[AVAssetResourceLoadingContentInformationRequest setContentType:] and then calling -[AVAssetResourceLoadingRequest finishLoading].
*/
-- (BOOL)resourceLoader:(AVAssetResourceLoader *)resourceLoader shouldWaitForRenewalOfRequestedResource:(AVAssetResourceRenewalRequest *)renewalRequest API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+- (BOOL)resourceLoader:(AVAssetResourceLoader *)resourceLoader shouldWaitForRenewalOfRequestedResource:(AVAssetResourceRenewalRequest *)renewalRequest API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@method resourceLoader:didCancelLoadingRequest:
@@ -122,7 +122,7 @@
The loading request that has been cancelled.
@discussion Previously issued loading requests can be cancelled when data from the resource is no longer required or when a loading request is superseded by new requests for data from the same resource. For example, if to complete a seek operation it becomes necessary to load a range of bytes that's different from a range previously requested, the prior request may be cancelled while the delegate is still handling it.
*/
-- (void)resourceLoader:(AVAssetResourceLoader *)resourceLoader didCancelLoadingRequest:(AVAssetResourceLoadingRequest *)loadingRequest API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+- (void)resourceLoader:(AVAssetResourceLoader *)resourceLoader didCancelLoadingRequest:(AVAssetResourceLoadingRequest *)loadingRequest API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@method resourceLoader:shouldWaitForResponseToAuthenticationChallenge:
@@ -135,7 +135,7 @@
Delegates receive this message when assistance is required of the application to respond to an authentication challenge.
If the result is YES, the resource loader expects you to send an appropriate response, either subsequently or immediately, to the NSURLAuthenticationChallenge's sender, i.e. [authenticationChallenge sender], via use of one of the messages defined in the NSURLAuthenticationChallengeSender protocol (see NSAuthenticationChallenge.h). If you intend to respond to the authentication challenge after your handling of -resourceLoader:shouldWaitForResponseToAuthenticationChallenge: returns, you must retain the instance of NSURLAuthenticationChallenge until after your response has been made.
*/
-- (BOOL)resourceLoader:(AVAssetResourceLoader *)resourceLoader shouldWaitForResponseToAuthenticationChallenge:(NSURLAuthenticationChallenge *)authenticationChallenge API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+- (BOOL)resourceLoader:(AVAssetResourceLoader *)resourceLoader shouldWaitForResponseToAuthenticationChallenge:(NSURLAuthenticationChallenge *)authenticationChallenge API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@method resourceLoader:didCancelAuthenticationChallenge:
@@ -143,7 +143,7 @@
@param authenticationChallenge
The authentication challenge that has been cancelled.
*/
-- (void)resourceLoader:(AVAssetResourceLoader *)resourceLoader didCancelAuthenticationChallenge:(NSURLAuthenticationChallenge *)authenticationChallenge API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+- (void)resourceLoader:(AVAssetResourceLoader *)resourceLoader didCancelAuthenticationChallenge:(NSURLAuthenticationChallenge *)authenticationChallenge API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@end
@@ -159,7 +159,7 @@
@class AVAssetResourceLoadingRequestor;
@class AVAssetResourceLoadingRequestorInternal;
-API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetResourceLoadingRequestor : NSObject {
@private
AVAssetResourceLoadingRequestorInternal *_requestor;
@@ -188,7 +188,7 @@
@class AVAssetResourceLoadingContentInformationRequest;
@class AVAssetResourceLoadingDataRequest;
-API_AVAILABLE(macos(10.9), ios(6.0), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.9), ios(6.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetResourceLoadingRequest : NSObject {
@private
AVAssetResourceLoadingRequestInternal *_loadingRequest;
@@ -213,45 +213,45 @@
@abstract Indicates whether the request has been cancelled.
@discussion The value of this property becomes YES when the resource loader cancels the loading of a request, just prior to sending the message -resourceLoader:didCancelLoadingRequest: to its delegate.
*/
-@property (nonatomic, readonly, getter=isCancelled) BOOL cancelled API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly, getter=isCancelled) BOOL cancelled API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property contentInformationRequest
@abstract An instance of AVAssetResourceLoadingContentInformationRequest that you must populate with information about the resource before responding to any AVAssetResourceLoadingDataRequests for the resource. The value of this property will be nil if no such information is being requested.
*/
-@property (nonatomic, readonly, nullable) AVAssetResourceLoadingContentInformationRequest *contentInformationRequest API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly, nullable) AVAssetResourceLoadingContentInformationRequest *contentInformationRequest API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property dataRequest
@abstract An instance of AVAssetResourceLoadingDataRequest that indicates the range of resource data that's being requested. If an AVAssetResourceLoadingContentInformationRequest has been provided, you must set its properties appropriately before responding to any AVAssetResourceLoadingDataRequests. The value of this property will be nil if no data is being requested.
*/
-@property (nonatomic, readonly, nullable) AVAssetResourceLoadingDataRequest *dataRequest API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly, nullable) AVAssetResourceLoadingDataRequest *dataRequest API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property response
@abstract Set the value of this property to an instance of NSURLResponse indicating a response to the loading request. If no response is needed, leave the value of this property set to nil.
*/
-@property (nonatomic, copy, nullable) NSURLResponse *response API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, copy, nullable) NSURLResponse *response API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property redirect
@abstract Set the value of this property to an instance of NSURLRequest indicating a redirection of the loading request to another URL. If no redirection is needed, leave the value of this property set to nil.
@discussion AVAssetResourceLoader supports redirects to HTTP URLs only. Redirects to other URLs will result in a loading failure.
*/
-@property (nonatomic, copy, nullable) NSURLRequest *redirect API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, copy, nullable) NSURLRequest *redirect API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property requestor
@abstract The AVAssetResourceLoadingRequestor that made this request
*/
-@property (nonatomic, readonly) AVAssetResourceLoadingRequestor *requestor API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly) AVAssetResourceLoadingRequestor *requestor API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@method finishLoading
@abstract Causes the receiver to treat the processing of the request as complete.
- @discussion If a dataRequest is present and the resource does not contain the full extent of the data that has been requested according to the values of the requestedOffset and requestedLength properties of the dataRequest, or if requestsAllDataToEndOfResource has a value of YES, you may invoke -finishLoading after you have provided as much of the requested data as the resource contains.
+ @discussion If a dataRequest is present, and the resource does not contain the full extent of the data that has been requested according to the values of the requestedOffset and requestedLength properties of the dataRequest, or if requestsAllDataToEndOfResource has a value of YES, -finishLoading may be invoked after providing as much of the requested data as the resource contains. If the contentInformationRequest property is not nil and specifies a non-empty allowedContentTypes array, the contentInformationRequest's contentType property must be set to a value within allowedContentTypes. Otherwise, this method will throw an exception.
*/
-- (void)finishLoading API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+- (void)finishLoading API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@method finishLoadingWithError:
@@ -272,7 +272,7 @@
When an AVURLAsset needs to renew a resource (because contentInformationRequest.renewalDate has been set on a previous loading request), it asks its AVAssetResourceLoader object to assist. The resource loader encapsulates the request information by creating an instance of this object, which it then hands to its delegate for processing. The delegate uses the information in this object to perform the request and report on the success or failure of the operation.
*/
-API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetResourceRenewalRequest : AVAssetResourceLoadingRequest
@end
@@ -290,7 +290,7 @@
@class AVAssetResourceLoadingContentInformationRequestInternal;
-API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetResourceLoadingContentInformationRequest : NSObject {
@private
AVAssetResourceLoadingContentInformationRequestInternal *_contentInformationRequest;
@@ -307,9 +307,9 @@
/*!
@property allowedContentTypes
@abstract An array showing the types of data which will be accepted as a valid response for the requested resource.
- @discussion If allowedContentTypes is nonnil and the contentType property is not in allowedContentTypes, an exception will be raised.
+ @discussion If an AVAssetResourceLoadingRequest's contentInformationRequest is not nil, ensure that the value assigned to the contentType property is in this array. Otherwise, calling -finishLoading on the associated request will result in an exception.
*/
-@property (nonatomic, readonly, nullable) NSArray <NSString *> *allowedContentTypes API_AVAILABLE(macos(10.13.2), ios(11.2), tvos(11.2)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly, nullable) NSArray <NSString *> *allowedContentTypes API_AVAILABLE(macos(10.13.2), ios(11.2), tvos(11.2), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property contentLength
@@ -330,14 +330,14 @@
@abstract For resources that expire, the date at which a new AVAssetResourceLoadingRequest will be issued for a renewal of this resource, if the media system still requires it.
@discussion Before you finish loading an AVAssetResourceLoadingRequest, if the resource is prone to expiry you should set the value of this property to the date at which a renewal should be triggered. This value should be set sufficiently early enough to allow an AVAssetResourceRenewalRequest, delivered to your delegate via -resourceLoader:shouldWaitForRenewalOfRequestedResource:, to finish before the actual expiry time. Otherwise media playback may fail.
*/
-@property (nonatomic, copy, nullable) NSDate *renewalDate API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, copy, nullable) NSDate *renewalDate API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property entireLengthAvailableOnDemand
@abstract Indicates whether asset data loading can expect data to be produced immediately.
@discussion Before you finish loading an AVAssetResourceLoadingRequest, if its contentInformationRequest is not nil, you may set this property to YES to indicate that all asset data can be produced immediately, e.g., because the data is fully cached, or because the custom URL scheme ultimately refers to files on local storage. This allows significant data flow optimizations. For backward compatibility, this property defaults to NO.
*/
-@property (nonatomic, getter=isEntireLengthAvailableOnDemand) BOOL entireLengthAvailableOnDemand API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0));
+@property (nonatomic, getter=isEntireLengthAvailableOnDemand) BOOL entireLengthAvailableOnDemand API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0), visionos(1.0));
@end
@@ -356,7 +356,7 @@
@class AVAssetResourceLoadingDataRequestInternal;
-API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetResourceLoadingDataRequest : NSObject {
@private
AVAssetResourceLoadingDataRequestInternal *_dataRequest;
@@ -383,7 +383,7 @@
@abstract Specifies that the entire remaining length of the resource from requestedOffset to the end of the resource is being requested.
@discussion When requestsAllDataToEndOfResource has a value of YES, you should disregard the value of requestedLength and incrementally provide as much data starting from the requestedOffset as the resource contains, until you have provided all of the available data successfully and invoked -finishLoading, until you have encountered a failure and invoked -finishLoadingWithError:, or until you have received -resourceLoader:didCancelLoadingRequest: for the AVAssetResourceLoadingRequest from which the AVAssetResourceLoadingDataRequest was obtained.
*/
-@property (nonatomic, readonly) BOOL requestsAllDataToEndOfResource API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly) BOOL requestsAllDataToEndOfResource API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property currentOffset
@@ -403,7 +403,7 @@
@end
-API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetResourceLoader (AVAssetResourceLoaderContentKeySupport)
/*!
@@ -411,11 +411,23 @@
@abstract When YES, eligible content keys will be loaded as eagerly as possible, potentially handled by the delegate. Setting to YES may result in network activity.
@discussion Any work done as a result of setting this property will be performed asynchronously.
*/
-@property (nonatomic) BOOL preloadsEligibleContentKeys API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic) BOOL preloadsEligibleContentKeys API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@end
-API_AVAILABLE(macos(10.9), ios(6.0), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), watchos(11.0), visionos(2.0))
+@interface AVAssetResourceLoader (AVAssetResourceLoaderCommonMediaClientDataSupport)
+
+/*
+ @property sendsCommonMediaClientDataAsHTTPHeaders
+ @abstract Enables Common Media Client Data to be attached as HTTP request headers.
+ @discussion Defaults to NO.
+*/
+@property (nonatomic) BOOL sendsCommonMediaClientDataAsHTTPHeaders;
+
+@end
+
+API_DEPRECATED("AVAssetResourceLoader based key loading is no longer supported, transition to AVContentKeySession", macos(10.9, 15.0), ios(6.0, 18.0), tvos(9.0, 18.0), visionos(1.0, 2.0)) API_UNAVAILABLE(watchos)
@interface AVAssetResourceLoadingRequest (AVAssetResourceLoadingRequestContentKeyRequestSupport)
/*!
@@ -431,7 +443,7 @@
If obtaining the streaming content key request fails, will be set to an instance of NSError describing the failure.
@result The key request data that must be transmitted to the key vendor to obtain the content key.
*/
-- (nullable NSData *)streamingContentKeyRequestDataForApp:(NSData *)appIdentifier contentIdentifier:(NSData *)contentIdentifier options:(nullable NSDictionary<NSString *, id> *)options error:(NSError * _Nullable * _Nullable)outError API_DEPRECATED_WITH_REPLACEMENT("-[AVContentKeyRequest makeStreamingContentKeyRequestDataForApp:contentIdentifier:options:completionHandler:]", macos(10.9, API_TO_BE_DEPRECATED), ios(7.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(watchos, visionos);
+- (nullable NSData *)streamingContentKeyRequestDataForApp:(NSData *)appIdentifier contentIdentifier:(NSData *)contentIdentifier options:(nullable NSDictionary<NSString *, id> *)options error:(NSError * _Nullable * _Nullable)outError API_DEPRECATED("Use -[AVContentKeyRequest makeStreamingContentKeyRequestDataForApp:contentIdentifier:options:completionHandler:] instead", macos(10.9, 15.0), ios(7.0, 18.0), tvos(9.0, 18.0)) API_UNAVAILABLE(watchos, visionos);
/*!
@method persistentContentKeyFromKeyVendorResponse:options:error:
@@ -445,7 +457,7 @@
@result The persistable content key data that may be stored offline to answer future loading requests of the same content key.
@discussion The data returned from this method may be used to immediately satisfy an AVAssetResourceLoadingDataRequest, as well as any subsequent requests for the same key url. The value of AVAssetResourceLoadingContentInformationRequest.contentType must be set to AVStreamingKeyDeliveryPersistentContentKeyType when responding with data created with this method.
*/
-- (nullable NSData *)persistentContentKeyFromKeyVendorResponse:(NSData *)keyVendorResponse options:(nullable NSDictionary<NSString *, id> *)options error:(NSError **)outError API_DEPRECATED_WITH_REPLACEMENT("-[AVPersistableContentKeyRequest persistableContentKeyFromKeyVendorResponse:options:error:]", macos(10.15, API_TO_BE_DEPRECATED), ios(9.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(watchos, visionos);
+- (nullable NSData *)persistentContentKeyFromKeyVendorResponse:(NSData *)keyVendorResponse options:(nullable NSDictionary<NSString *, id> *)options error:(NSError **)outError API_DEPRECATED("Use -[AVPersistableContentKeyRequest persistableContentKeyFromKeyVendorResponse:options:error:] instead", macos(10.15, 15.0), ios(9.0, 18.0), tvos(9.0, 18.0)) API_UNAVAILABLE(watchos, visionos);
@end
@@ -454,9 +466,9 @@
@constant AVAssetResourceLoadingRequestStreamingContentKeyRequestRequiresPersistentKey
@abstract Specifies whether the content key request should require a persistable key to be returned from the key vendor. Value should be a NSNumber created with +[NSNumber numberWithBool:].
*/
-AVF_EXPORT NSString *const AVAssetResourceLoadingRequestStreamingContentKeyRequestRequiresPersistentKey API_DEPRECATED_WITH_REPLACEMENT("-[AVPersistableContentKeyRequest persistableContentKeyFromKeyVendorResponse:options:error:]", macos(10.14, API_TO_BE_DEPRECATED), ios(9.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(watchos, visionos);
+AVF_EXPORT NSString *const AVAssetResourceLoadingRequestStreamingContentKeyRequestRequiresPersistentKey API_DEPRECATED("Use -[AVPersistableContentKeyRequest persistableContentKeyFromKeyVendorResponse:options:error:] instead", macos(10.14, 15.0), ios(9.0, 18.0), tvos(9.0, 18.0)) API_UNAVAILABLE(watchos, visionos);
-API_AVAILABLE(macos(10.9), ios(6.0), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.9), ios(6.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetResourceLoadingRequest (AVAssetResourceLoadingRequestDeprecated)
/*!
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetSegmentReport.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetSegmentReport.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetSegmentReport.h 2024-04-17 08:16:26
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetSegmentReport.h 2024-05-30 10:53:34
@@ -31,7 +31,7 @@
typedef NS_ENUM(NSInteger, AVAssetSegmentType) {
AVAssetSegmentTypeInitialization = 1,
AVAssetSegmentTypeSeparable = 2
-} API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0)) API_UNAVAILABLE(watchos);
+} API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@@ -42,7 +42,7 @@
Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
*/
NS_SWIFT_SENDABLE
-API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetSegmentReport : NSObject
AV_INIT_UNAVAILABLE
@@ -67,7 +67,7 @@
@discussion Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
*/
NS_SWIFT_SENDABLE
-API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetSegmentTrackReport : NSObject
AV_INIT_UNAVAILABLE
@@ -110,7 +110,7 @@
@discussion Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
*/
NS_SWIFT_SENDABLE
-API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetSegmentReportSampleInformation : NSObject
AV_INIT_UNAVAILABLE
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetTrack.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetTrack.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetTrack.h 2024-04-17 07:14:08
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetTrack.h 2024-05-30 04:04:13
@@ -31,7 +31,7 @@
@class AVAssetTrackInternal;
-API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0))
+API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0))
@interface AVAssetTrack : NSObject <NSCopying, AVAsynchronousKeyValueLoading>
{
@private
@@ -59,14 +59,14 @@
each of which indicates the format of media samples referenced by the track;
a track that presents uniform media, e.g. encoded according to the same encoding settings,
will provide an array with a count of 1 */
-@property (nonatomic, readonly) NSArray *formatDescriptions AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.formatDescriptions) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+@property (nonatomic, readonly) NSArray *formatDescriptions AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.formatDescriptions) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
/* Indicates whether the receiver is playable in the current environment; if YES, an AVPlayerItemTrack of an AVPlayerItem initialized with the receiver's asset can be enabled for playback. */
@property (nonatomic, readonly, getter=isPlayable) BOOL playable
#if __swift__
API_DEPRECATED("Use load(.isPlayable) instead", macos(10.8, 13.0), ios(5.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0));
+API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0), visionos(1.0));
#endif
/* Indicates whether the receiver is decodable in the current environment; if YES, the track can be decoded even though decoding may be too slow for real time playback. */
@@ -74,18 +74,18 @@
#if __swift__
API_DEPRECATED("Use load(.isDecodable) instead", macos(10.13, 13.0), ios(11.0, 16.0), tvos(11.0, 16.0), watchos(4.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));
+API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0), visionos(1.0));
#endif
/* indicates whether the track is enabled according to state stored in its container or construct;
note that its presentation state can be changed from this default via AVPlayerItemTrack */
-@property (nonatomic, readonly, getter=isEnabled) BOOL enabled AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.isEnabled) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+@property (nonatomic, readonly, getter=isEnabled) BOOL enabled AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.isEnabled) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
/* indicates whether the track references sample data only within its storage container */
-@property (nonatomic, readonly, getter=isSelfContained) BOOL selfContained AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.isSelfContained) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+@property (nonatomic, readonly, getter=isSelfContained) BOOL selfContained AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.isSelfContained) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
/* indicates the total number of bytes of sample data required by the track */
-@property (nonatomic, readonly) long long totalSampleDataLength AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.totalSampleDataLength) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+@property (nonatomic, readonly) long long totalSampleDataLength AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.totalSampleDataLength) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
/*!
@method hasMediaCharacteristic:
@@ -95,7 +95,7 @@
as defined above.
@result YES if the track references media with the specified characteristic, otherwise NO.
*/
-- (BOOL)hasMediaCharacteristic:(AVMediaCharacteristic)mediaCharacteristic AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.mediaCharacteristics) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+- (BOOL)hasMediaCharacteristic:(AVMediaCharacteristic)mediaCharacteristic AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.mediaCharacteristics) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
@end
@@ -104,13 +104,13 @@
/* Indicates the timeRange of the track within the overall timeline of the asset;
a track with CMTIME_COMPARE_INLINE(timeRange.start, >, kCMTimeZero) will initially present an empty interval. */
-@property (nonatomic, readonly) CMTimeRange timeRange AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.timeRange) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+@property (nonatomic, readonly) CMTimeRange timeRange AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.timeRange) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
/* indicates a timescale in which time values for the track can be operated upon without extraneous numerical conversion */
-@property (nonatomic, readonly) CMTimeScale naturalTimeScale AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.naturalTimeScale) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+@property (nonatomic, readonly) CMTimeScale naturalTimeScale AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.naturalTimeScale) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
/* indicates the estimated data rate of the media data referenced by the track, in units of bits per second */
-@property (nonatomic, readonly) float estimatedDataRate AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.estimatedDataRate) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+@property (nonatomic, readonly) float estimatedDataRate AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.estimatedDataRate) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
@end
@@ -119,11 +119,11 @@
/* indicates the language associated with the track, as an ISO 639-2/T language code;
may be nil if no language is indicated */
-@property (nonatomic, readonly, nullable) NSString *languageCode AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.languageCode) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+@property (nonatomic, readonly, nullable) NSString *languageCode AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.languageCode) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
/* indicates the language tag associated with the track, as an IETF BCP 47 (RFC 4646) language identifier;
may be nil if no language tag is indicated */
-@property (nonatomic, readonly, nullable) NSString *extendedLanguageTag AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.extendedLanguageTag) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+@property (nonatomic, readonly, nullable) NSString *extendedLanguageTag AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.extendedLanguageTag) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
@end
@@ -131,11 +131,11 @@
@interface AVAssetTrack (AVAssetTrackPropertiesForVisualCharacteristic)
/* indicates the natural dimensions of the media data referenced by the track as a CGSize */
-@property (nonatomic, readonly) CGSize naturalSize AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.naturalSize) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+@property (nonatomic, readonly) CGSize naturalSize AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.naturalSize) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
/* indicates the transform specified in the track's storage container as the preferred transformation of the visual media data for display purposes;
its value is often but not always CGAffineTransformIdentity */
-@property (nonatomic, readonly) CGAffineTransform preferredTransform AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.preferredTransform) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+@property (nonatomic, readonly) CGAffineTransform preferredTransform AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.preferredTransform) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
@end
@@ -143,14 +143,14 @@
@interface AVAssetTrack (AVAssetTrackPropertiesForAudibleCharacteristic)
/* indicates the volume specified in the track's storage container as the preferred volume of the audible media data */
-@property (nonatomic, readonly) float preferredVolume AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.preferredVolume) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+@property (nonatomic, readonly) float preferredVolume AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.preferredVolume) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
/* indicates whether this audio track has dependencies (e.g. kAudioFormatMPEGD_USAC) */
@property (nonatomic, readonly) BOOL hasAudioSampleDependencies
#if __swift__
API_DEPRECATED("Use load(.hasAudioSampleDependencies) instead", macos(10.15, 13.0), ios(13.0, 16.0), tvos(13.0, 16.0), watchos(6.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0));
+API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0), visionos(1.0));
#endif
@end
@@ -163,14 +163,14 @@
@abstract For tracks that carry a full frame per media sample, indicates the frame rate of the track in units of frames per second.
@discussion For field-based video tracks that carry one field per media sample, the value of this property is the field rate, not the frame rate.
*/
-@property (nonatomic, readonly) float nominalFrameRate AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.nominalFrameRate) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+@property (nonatomic, readonly) float nominalFrameRate AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.nominalFrameRate) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
/* indicates the minimum duration of the track's frames; the value will be kCMTimeInvalid if the minimum frame duration is not known or cannot be calculated */
@property (nonatomic, readonly) CMTime minFrameDuration
#if __swift__
API_DEPRECATED("Use load(.minFrameDuration) instead", macos(10.10, 13.0), ios(7.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_AVAILABLE(macos(10.10), ios(7.0), tvos(9.0), watchos(1.0));
+API_AVAILABLE(macos(10.10), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
#endif
/*!
@@ -181,7 +181,7 @@
#if __swift__
API_DEPRECATED("Use load(.requiresFrameReordering) instead", macos(10.10, 13.0), ios(8.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0));
+API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0), visionos(1.0));
#endif
@end
@@ -191,7 +191,7 @@
/* Provides an array of AVAssetTrackSegments with time mappings from the timeline of the track's media samples to the timeline of the track.
Empty edits, i.e. timeRanges for which no media data is available to be presented, have a value of AVAssetTrackSegment.empty equal to YES. */
-@property (nonatomic, copy, readonly) NSArray<AVAssetTrackSegment *> *segments AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.segments) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+@property (nonatomic, copy, readonly) NSArray<AVAssetTrackSegment *> *segments AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.segments) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
/*!
@method segmentForTrackTime:
@@ -205,7 +205,7 @@
#if __swift__
API_DEPRECATED("Use loadSegment(forTrackTime:) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_DEPRECATED_WITH_REPLACEMENT("loadSegmentForTrackTime:completionHandler:", macos(10.7, API_TO_BE_DEPRECATED), ios(4.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED), watchos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(visionos);
+API_DEPRECATED("Use loadSegmentForTrackTime:completionHandler: instead", macos(10.7, 15.0), ios(4.0, 18.0), tvos(9.0, 18.0), watchos(1.0, 11.0)) API_UNAVAILABLE(visionos);
#endif
/*!
@@ -217,7 +217,7 @@
A block that is invoked when loading is complete, vending an AVAssetTrackSegment or an error.
@discussion If the trackTime does not map to a sample presentation time (e.g. it's outside the track's timeRange), the segment closest in time to the specified trackTime is returned.
*/
-- (void)loadSegmentForTrackTime:(CMTime)trackTime completionHandler:(void (^)(AVAssetTrackSegment * _Nullable_result, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+- (void)loadSegmentForTrackTime:(CMTime)trackTime completionHandler:(void (^ NS_SWIFT_SENDABLE)(AVAssetTrackSegment * _Nullable_result, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
/*!
@method samplePresentationTimeForTrackTime:
@@ -230,7 +230,7 @@
#if __swift__
API_DEPRECATED("Use loadSamplePresentationTime(forTrackTime:) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_DEPRECATED_WITH_REPLACEMENT("loadSamplePresentationTimeForTrackTime:completionHandler:", macos(10.7, API_TO_BE_DEPRECATED), ios(4.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED), watchos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(visionos);
+API_DEPRECATED("Use loadSamplePresentationTimeForTrackTime:completionHandler: instead", macos(10.7, 15.0), ios(4.0, 18.0), tvos(9.0, 18.0), watchos(1.0, 11.0)) API_UNAVAILABLE(visionos);
#endif
/*!
@@ -241,7 +241,7 @@
@param completionHandler
A block that is invoked when loading is complete, vending a CMTime (which will be invalid if the trackTime is out of range) or an error.
*/
-- (void)loadSamplePresentationTimeForTrackTime:(CMTime)trackTime completionHandler:(void (^)(CMTime, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+- (void)loadSamplePresentationTimeForTrackTime:(CMTime)trackTime completionHandler:(void (^ NS_SWIFT_SENDABLE)(CMTime, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
@end
@@ -251,7 +251,7 @@
// high-level access to selected metadata of common interest
/* provides access to an array of AVMetadataItems for each common metadata key for which a value is available */
-@property (nonatomic, readonly) NSArray<AVMetadataItem *> *commonMetadata AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.commonMetadata) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+@property (nonatomic, readonly) NSArray<AVMetadataItem *> *commonMetadata AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.commonMetadata) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
/* Provides access to an array of AVMetadataItems for all metadata identifiers for which a value is available; items can be filtered according to language via +[AVMetadataItem metadataItemsFromArray:filteredAndSortedAccordingToPreferredLanguages:] and according to identifier via +[AVMetadataItem metadataItemsFromArray:filteredByIdentifier:].
*/
@@ -259,12 +259,12 @@
#if __swift__
API_DEPRECATED("Use load(.metadata) instead", macos(10.10, 13.0), ios(8.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0));
+API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0), visionos(1.0));
#endif
/* provides an NSArray of NSStrings, each representing a format of metadata that's available for the track (e.g. QuickTime userdata, etc.)
Metadata formats are defined in AVMetadataItem.h. */
-@property (nonatomic, readonly) NSArray<AVMetadataFormat> *availableMetadataFormats AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.availableMetadataFormats) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+@property (nonatomic, readonly) NSArray<AVMetadataFormat> *availableMetadataFormats AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(.availableMetadataFormats) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
/*!
@method metadataForFormat:
@@ -278,7 +278,7 @@
#if __swift__
API_DEPRECATED("Use loadMetadata(for:) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_DEPRECATED_WITH_REPLACEMENT("loadMetadataForFormat:completionHandler:", macos(10.7, API_TO_BE_DEPRECATED), ios(4.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED), watchos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(visionos);
+API_DEPRECATED("Use loadMetadataForFormat:completionHandler: instead", macos(10.7, 15.0), ios(4.0, 18.0), tvos(9.0, 18.0), watchos(1.0, 11.0)) API_UNAVAILABLE(visionos);
#endif
/*!
@@ -289,7 +289,7 @@
@param completionHandler
A block that is invoked when loading is complete, vending the array of metadata items (which may be empty if there is no metadata of the specified format) or an error.
*/
-- (void)loadMetadataForFormat:(AVMetadataFormat)format completionHandler:(void (^)(NSArray<AVMetadataItem *> * _Nullable, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+- (void)loadMetadataForFormat:(AVMetadataFormat)format completionHandler:(void (^ NS_SWIFT_SENDABLE)(NSArray<AVMetadataItem *> * _Nullable, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
@end
@@ -313,7 +313,7 @@
Example: Using AVTrackAssociationTypeAudioFallback, a stereo audio track with media subtype kAudioFormatMPEG4AAC could be nominated as the "fallback" for an audio track encoding the same source material but with media subtype kAudioFormatAC3 and a 5.1 channel layout. This would ensure that all clients are capable of playing back some form of the audio.
*/
-AVF_EXPORT AVTrackAssociationType const AVTrackAssociationTypeAudioFallback API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVTrackAssociationType const AVTrackAssociationTypeAudioFallback API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*
@constant AVTrackAssociationTypeChapterList
@@ -322,7 +322,7 @@
@discussion
This association is not symmetric; when used with -[AVAssetWriterInput addTrackAssociationWithTrackOfInput:type:], the receiver should be an instance of AVAssetWriterInput with a corresponding track that has renderable content while the input parameter should be an instance of AVAssetWriterInput with a corresponding track that contains chapter metadata.
*/
-AVF_EXPORT AVTrackAssociationType const AVTrackAssociationTypeChapterList API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVTrackAssociationType const AVTrackAssociationTypeChapterList API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*
@constant AVTrackAssociationTypeForcedSubtitlesOnly
@@ -331,7 +331,7 @@
@discussion
Associations of type AVTrackAssociationTypeForcedSubtitlesOnly are supported only between subtitle tracks. This association is not symmetric; when used with -[AVAssetWriterInput addTrackAssociationWithTrackOfInput:type:], the receiver should be an instance of AVAssetWriterInput with a corresponding subtitle track that contains non-forced subtitles, and the input parameter should be an instance of AVAssetWriterInput with a corresponding subtitle track that contains forced subtitles only.
*/
-AVF_EXPORT AVTrackAssociationType const AVTrackAssociationTypeForcedSubtitlesOnly API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVTrackAssociationType const AVTrackAssociationTypeForcedSubtitlesOnly API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*
@constant AVTrackAssociationTypeSelectionFollower
@@ -340,7 +340,7 @@
@discussion
This association is not symmetric; when used with -[AVAssetWriterInput addTrackAssociationWithTrackOfInput:type:], the input parameter should be an instance of AVAssetWriterInput whose selection may depend on the selection of the receiver. In the example above, the receiver would be the instance of AVAssetWriterInput corresponding with the audio track and the input parameter would be the instance of AVAssetWriterInput corresponding with the subtitle track.
*/
-AVF_EXPORT AVTrackAssociationType const AVTrackAssociationTypeSelectionFollower API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVTrackAssociationType const AVTrackAssociationTypeSelectionFollower API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*
@constant AVTrackAssociationTypeTimecode
@@ -349,7 +349,7 @@
@discussion
This association is not symmetric; when used with -[AVAssetWriterInput addTrackAssociationWithTrackOfInput:type:], the receiver should be an instance of AVAssetWriterInput with a corresponding track that may be a video track or an audio track while the input parameter should be an instance of AVAssetWriterInput with a corresponding timecode track.
*/
-AVF_EXPORT AVTrackAssociationType const AVTrackAssociationTypeTimecode API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVTrackAssociationType const AVTrackAssociationTypeTimecode API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*
@constant AVTrackAssociationTypeMetadataReferent
@@ -359,7 +359,7 @@
This track association is optional for AVAssetTracks with the mediaType AVMediaTypeMetadata. When a metadata track lacks this track association, its contents are assumed to describe or annotate the asset as a whole.
This association is not symmetric; when used with -[AVAssetWriterInput addTrackAssociationWithTrackOfInput:type:], the receiver should be an instance of AVAssetWriterInput with mediaType AVMediaTypeMetadata while the input parameter should be an instance of AVAssetWriterInput that's used to create the track to which the contents of the receiver's corresponding metadata track refer.
*/
-AVF_EXPORT AVTrackAssociationType const AVTrackAssociationTypeMetadataReferent API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVTrackAssociationType const AVTrackAssociationTypeMetadataReferent API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0), visionos(1.0));
/* Provides an NSArray of NSStrings, each representing a type of track association that the receiver has with one or more of the other tracks of the asset (e.g. AVTrackAssociationTypeChapterList, AVTrackAssociationTypeTimecode, etc.).
Track association types are defined immediately above. */
@@ -367,7 +367,7 @@
#if __swift__
API_DEPRECATED("Use load(.availableTrackAssociationTypes) instead", macos(10.9, 13.0), ios(7.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
+API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
#endif
/*!
@method associatedTracksOfType:
@@ -381,7 +381,7 @@
#if __swift__
API_DEPRECATED("Use loadAssociatedTracks(ofType:) instead", macos(10.9, 13.0), ios(7.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0)) API_UNAVAILABLE(visionos);
#else
-API_DEPRECATED_WITH_REPLACEMENT("loadAssociatedTracksOfType:completionHandler:", macos(10.9, API_TO_BE_DEPRECATED), ios(7.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED), watchos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(visionos);
+API_DEPRECATED("Use loadAssociatedTracksOfType:completionHandler: instead", macos(10.9, 15.0), ios(7.0, 18.0), tvos(9.0, 18.0), watchos(1.0, 11.0)) API_UNAVAILABLE(visionos);
#endif
/*!
@@ -392,7 +392,7 @@
@param completionHandler
A block that is invoked when loading is comlete, vending an array of tracks (which may be empty if there is no associated tracks of the specified type) or an error.
`*/
-- (void)loadAssociatedTracksOfType:(AVTrackAssociationType)trackAssociationType completionHandler:(void (^)(NSArray<AVAssetTrack *> * _Nullable, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+- (void)loadAssociatedTracksOfType:(AVTrackAssociationType)trackAssociationType completionHandler:(void (^ NS_SWIFT_SENDABLE)(NSArray<AVAssetTrack *> * _Nullable, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
@end
@@ -406,7 +406,7 @@
#if __swift__
API_DEPRECATED("Use load(.canProvideSampleCursors) instead", macos(10.10, 13.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos);
#else
-API_AVAILABLE(macos(10.10), ios(16.0), tvos(16.0), watchos(9.0));
+API_AVAILABLE(macos(10.10), ios(16.0), tvos(16.0), watchos(9.0), visionos(1.0));
#endif
/*!
@@ -419,7 +419,7 @@
If the receiver's asset has a value of NO for providesPreciseDurationAndTiming, and it is prohibitively expensive to locate the precise sample at the desired timestamp, the sample cursor may be approximately positioned.
This method will return nil if there are no samples in the track.
*/
-- (nullable AVSampleCursor *)makeSampleCursorWithPresentationTimeStamp:(CMTime)presentationTimeStamp API_AVAILABLE(macos(10.10), ios(16.0), tvos(16.0), watchos(9.0));
+- (nullable AVSampleCursor *)makeSampleCursorWithPresentationTimeStamp:(CMTime)presentationTimeStamp API_AVAILABLE(macos(10.10), ios(16.0), tvos(16.0), watchos(9.0), visionos(1.0));
/*!
@method makeSampleCursorAtFirstSampleInDecodeOrder:
@@ -427,7 +427,7 @@
@result An instance of AVSampleCursor.
@discussion This method will return nil if there are no samples in the track.
*/
-- (nullable AVSampleCursor *)makeSampleCursorAtFirstSampleInDecodeOrder API_AVAILABLE(macos(10.10), ios(16.0), tvos(16.0), watchos(9.0));
+- (nullable AVSampleCursor *)makeSampleCursorAtFirstSampleInDecodeOrder API_AVAILABLE(macos(10.10), ios(16.0), tvos(16.0), watchos(9.0), visionos(1.0));
/*!
@method makeSampleCursorAtLastSampleInDecodeOrder:
@@ -435,7 +435,7 @@
@result An instance of AVSampleCursor.
@discussion This method will return nil if there are no samples in the track.
*/
-- (nullable AVSampleCursor *)makeSampleCursorAtLastSampleInDecodeOrder API_AVAILABLE(macos(10.10), ios(16.0), tvos(16.0), watchos(9.0));
+- (nullable AVSampleCursor *)makeSampleCursorAtLastSampleInDecodeOrder API_AVAILABLE(macos(10.10), ios(16.0), tvos(16.0), watchos(9.0), visionos(1.0));
@end
@@ -450,30 +450,32 @@
@constant AVAssetTrackTimeRangeDidChangeNotification
@abstract Posted when the timeRange of an AVFragmentedAssetTrack changes while the associated instance of AVFragmentedAsset is being minded by an AVFragmentedAssetMinder, but only for changes that occur after the status of the value of @"timeRange" has reached AVKeyValueStatusLoaded.
*/
-AVF_EXPORT NSString *const AVAssetTrackTimeRangeDidChangeNotification API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0));
+AVF_EXPORT NSString *const AVAssetTrackTimeRangeDidChangeNotification API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0), visionos(1.0));
/*!
@constant AVAssetTrackSegmentsDidChangeNotification
@abstract Posted when the array of segments of an AVFragmentedAssetTrack changes while the associated instance of AVFragmentedAsset is being minded by an AVFragmentedAssetMinder, but only for changes that occur after the status of the value of @"segments" has reached AVKeyValueStatusLoaded.
*/
-AVF_EXPORT NSString *const AVAssetTrackSegmentsDidChangeNotification API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0));
+AVF_EXPORT NSString *const AVAssetTrackSegmentsDidChangeNotification API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0), visionos(1.0));
/*!
@constant AVAssetTrackTrackAssociationsDidChangeNotification
@abstract Posted when the collection of track associations of an AVAssetTrack changes, but only for changes that occur after the status of the value of @"availableTrackAssociationTypes" has reached AVKeyValueStatusLoaded.
*/
-AVF_EXPORT NSString *const AVAssetTrackTrackAssociationsDidChangeNotification API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0));
+AVF_EXPORT NSString *const AVAssetTrackTrackAssociationsDidChangeNotification API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0), visionos(1.0));
#pragma mark --- AVFragmentedAssetTrack ---
/*!
@class AVFragmentedAssetTrack
@abstract A subclass of AVAssetTrack for handling tracks of fragmented assets. An AVFragmentedAssetTrack is capable of changing the values of certain of its properties, if its parent asset is associated with an instance of AVFragmentedAssetMinder when one or more fragments are appended to the underlying media resource.
@discussion While its parent asset is associated with an AVFragmentedAssetMinder, AVFragmentedAssetTrack posts AVAssetTrackTimeRangeDidChangeNotification and AVAssetTrackSegmentsDidChangeNotification whenever new fragments are detected, as appropriate.
+ Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
*/
@class AVFragmentedAssetTrackInternal;
-API_AVAILABLE(macos(10.11), ios(12.0), tvos(12.0), watchos(6.0))
+NS_SWIFT_SENDABLE
+API_AVAILABLE(macos(10.11), ios(12.0), tvos(12.0), watchos(6.0), visionos(1.0))
@interface AVFragmentedAssetTrack : AVAssetTrack
{
@private
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetTrackGroup.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetTrackGroup.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetTrackGroup.h 2024-04-17 08:13:13
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetTrackGroup.h 2024-05-30 11:22:40
@@ -30,7 +30,7 @@
Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
*/
NS_SWIFT_SENDABLE
-API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0))
+API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0))
@interface AVAssetTrackGroup : NSObject <NSCopying>
{
@private
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetTrackSegment.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetTrackSegment.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetTrackSegment.h 2024-04-17 08:13:14
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetTrackSegment.h 2024-05-30 11:22:42
@@ -24,7 +24,7 @@
NS_ASSUME_NONNULL_BEGIN
NS_SWIFT_SENDABLE
-API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0))
+API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0))
@interface AVAssetTrackSegment : NSObject
{
@private
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetVariant.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetVariant.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetVariant.h 2024-04-08 15:38:29
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetVariant.h 2024-05-30 02:57:30
@@ -4,7 +4,7 @@
Framework: AVFoundation
- Copyright © 2021-2023 Apple Inc. All rights reserved.
+ Copyright © 2021-2024 Apple Inc. All rights reserved.
*/
#import <Foundation/Foundation.h>
@@ -30,7 +30,7 @@
Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
*/
NS_SWIFT_SENDABLE
-API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0))
+API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0))
@interface AVAssetVariant : NSObject
AV_INIT_UNAVAILABLE
@@ -66,7 +66,7 @@
@abstract Video attributes for an asset variant.
@discussion Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
*/
-API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0))
+API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0))
@interface AVAssetVariantVideoAttributes : NSObject
AV_INIT_UNAVAILABLE
@@ -100,12 +100,17 @@
@abstract Describes the video layout attributes.
@discussion videoLayoutAttributes' count may be greater than one if this variant contains a collection of differing video layout media attributes over time.
*/
-@property (nonatomic, readonly) NSArray <AVAssetVariantVideoLayoutAttributes *> *videoLayoutAttributes API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0));
+@property (nonatomic, readonly) NSArray <AVAssetVariantVideoLayoutAttributes *> *videoLayoutAttributes API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0), visionos(1.0));
@end
+/*!
+ @class AVAssetVariantVideoLayoutAttributes
+ @discussion Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
+*/
+
NS_SWIFT_SENDABLE
-API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0))
+API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0), visionos(1.0))
@interface AVAssetVariantVideoLayoutAttributes : NSObject
AV_INIT_UNAVAILABLE
@@ -125,7 +130,7 @@
@discussion Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
*/
NS_SWIFT_SENDABLE
-API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0))
+API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0))
@interface AVAssetVariantAudioAttributes : NSObject
AV_INIT_UNAVAILABLE
@@ -152,7 +157,7 @@
@discussion Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
*/
NS_SWIFT_SENDABLE
-API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0))
+API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0))
@interface AVAssetVariantAudioRenditionSpecificAttributes : NSObject
/*!
@@ -167,21 +172,21 @@
@abstract Indicates that the variant is best suited for delivery to headphones.
@discussion A binaural variant may originate from a direct binaural recording or from the processing of a multichannel audio source.
*/
-@property (nonatomic, readonly, getter=isBinaural) BOOL binaural API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0));
+@property (nonatomic, readonly, getter=isBinaural) BOOL binaural API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0), visionos(1.0));
/*!
@property immersive
@abstract Indicates that this variant contains virtualized or otherwise pre-processed audio content that is suitable for a variety of purposes.
@discussion If a variant audio redition is immersive it is eligible for rendering either to headphones or speakers.
*/
-@property (nonatomic, readonly, getter=isImmersive) BOOL immersive API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0));
+@property (nonatomic, readonly, getter=isImmersive) BOOL immersive API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0), visionos(1.0));
/*!
@property downmix
@abstract Indicates that this variant is declared as a downmix derivative of other media of greater channel count.
@discussion If one or more multichannel variants are also provided, the dowmix is assumed to be compatible in its internal timing and other attributes with those variants. Typically this is because it has been derived from the same source. A downmix can be used as a suitable substitute for a multichannel variant under some conditions.
*/
-@property (nonatomic, readonly, getter=isDownmix) BOOL downmix API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0));
+@property (nonatomic, readonly, getter=isDownmix) BOOL downmix API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0), visionos(1.0));
@end
@@ -191,7 +196,7 @@
@discussion Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
*/
NS_SWIFT_SENDABLE
-API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(10.0))
+API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(10.0), visionos(1.0))
@interface AVAssetVariantQualifier : NSObject <NSCopying>
AV_INIT_UNAVAILABLE
@@ -213,6 +218,23 @@
+ (instancetype)assetVariantQualifierWithVariant:(AVAssetVariant *)variant;
/*!
+ @method assetVariantQualifierForMinimumValueInKeyPath:
+ @abstract Returns a qualifer for finding variant with minimum value in the input key path.
+ @param keyPath
+ AVAssetVariant keyPath. Allowed keyPath values are peakBitRate, averageBitRate, videoAttributes.presentationSize.
+ */
+
++ (instancetype)assetVariantQualifierForMinimumValueInKeyPath:(NSString *)keyPath API_UNAVAILABLE(macos, ios, tvos, watchos, visionos);
+
+/*!
+ @method assetVariantQualifierForMaximumValueInKeyPath:
+ @abstract Returns a qualifer for finding variant with maximum value in the input key path
+ @param keyPath
+ AVAssetVariant keyPath. Allowed keyPath values are peakBitRate, averageBitRate, videoAttributes.presentationSize.
+ */
++ (instancetype)assetVariantQualifierForMaximumValueInKeyPath:(NSString *)keyPath API_UNAVAILABLE(macos, ios, tvos, watchos, visionos);
+
+/*!
@method predicateForChannelCount:mediaSelectionOption:operatorType:
@abstract Creates a NSPredicate for audio channel count which can be used with other NSPredicates to express variant preferences.
@param channelCount
@@ -232,7 +254,7 @@
@param mediaSelectionOption
The audio media selection option under consideration.
*/
-+ (NSPredicate *)predicateForBinauralAudio:(BOOL)isBinauralAudio mediaSelectionOption:(AVMediaSelectionOption *)mediaSelectionOption API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0));
++ (NSPredicate *)predicateForBinauralAudio:(BOOL)isBinauralAudio mediaSelectionOption:(AVMediaSelectionOption *)mediaSelectionOption API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0), visionos(1.0));
/*!
@method predicateForImmersiveAudio:mediaSelectionOption:
@@ -242,7 +264,7 @@
@param mediaSelectionOption
The audio media selection option under consideration.
*/
-+ (NSPredicate *)predicateForImmersiveAudio:(BOOL)isImmersiveAudio mediaSelectionOption:(AVMediaSelectionOption *)mediaSelectionOption API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0));
++ (NSPredicate *)predicateForImmersiveAudio:(BOOL)isImmersiveAudio mediaSelectionOption:(AVMediaSelectionOption *)mediaSelectionOption API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0), visionos(1.0));
/*!
@method predicateForDownmixAudio:mediaSelectionOption:
@@ -252,7 +274,7 @@
@param mediaSelectionOption
The audio media selection option under consideration.
*/
-+ (NSPredicate *)predicateForDownmixAudio:(BOOL)isDownmixAudio mediaSelectionOption:(AVMediaSelectionOption *)mediaSelectionOption API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0));
++ (NSPredicate *)predicateForDownmixAudio:(BOOL)isDownmixAudio mediaSelectionOption:(AVMediaSelectionOption *)mediaSelectionOption API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0), visionos(1.0));
/*!
@method predicateForPresentationWidth:operatorType:
@@ -273,6 +295,18 @@
The valid values are NSLessThanPredicateOperatorType, NSLessThanOrEqualToPredicateOperatorType, NSGreaterThanPredicateOperatorType, NSGreaterThanOrEqualToPredicateOperatorType, NSEqualToPredicateOperatorType and NSNotEqualToPredicateOperatorType.
*/
+ (NSPredicate *)predicateForPresentationHeight:(CGFloat)height operatorType:(NSPredicateOperatorType)operatorType;
+
+/*!
+ @method predicateForAudioSampleRate:mediaSelectionOption:operatorType:
+ @abstract Creates a NSPredicate for audio sample rate which can be used with other NSPredicates to express variant preferences.
+ @param sampleRate
+ The RHS value for the sample rate in the predicate equation.
+ @param mediaSelectionOption
+ The audio media selection option under consideration.
+ @param operatorType
+ The valid values are NSLessThanPredicateOperatorType, NSLessThanOrEqualToPredicateOperatorType, NSGreaterThanPredicateOperatorType, NSGreaterThanOrEqualToPredicateOperatorType, NSEqualToPredicateOperatorType and NSNotEqualToPredicateOperatorType.
+ */
++ (NSPredicate *)predicateForAudioSampleRate:(double)sampleRate mediaSelectionOption:(AVMediaSelectionOption *)mediaSelectionOption operatorType:(NSPredicateOperatorType)operatorType API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), watchos(11.0), visionos(2.0));
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriter.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriter.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriter.h 2024-04-08 15:38:28
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriter.h 2024-05-30 04:04:13
@@ -61,7 +61,7 @@
A single instance of AVAssetWriter can be used once to write to a single file. Clients that wish to write to files multiple times must use a new instance of AVAssetWriter each time.
*/
-API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetWriter : NSObject
{
@private
@@ -128,7 +128,7 @@
This method throws an exception if the output content type UTI for container format is not declared in AVMediaFormat.h.
*/
-- (instancetype)initWithContentType:(UTType *)outputContentType NS_DESIGNATED_INITIALIZER API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0)) API_UNAVAILABLE(watchos);
+- (instancetype)initWithContentType:(UTType *)outputContentType NS_DESIGNATED_INITIALIZER API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property outputURL
@@ -212,7 +212,7 @@
This property cannot be set after writing has started. The asset writer will fail if a file cannot be created in this directory (for example, due to insufficient permissions).
*/
-@property (nonatomic, copy, nullable) NSURL *directoryForTemporaryFiles API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, copy, nullable) NSURL *directoryForTemporaryFiles API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property inputs
@@ -386,11 +386,11 @@
To guarantee that all sample buffers are successfully written, ensure all calls to -[AVAssetWriterInput appendSampleBuffer:] or -[AVAssetWriterInputPixelBufferAdaptor appendPixelBuffer:withPresentationTime:] have returned before invoking this method.
*/
-- (void)finishWritingWithCompletionHandler:(void (^)(void))handler API_AVAILABLE(macos(10.9), ios(6.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+- (void)finishWritingWithCompletionHandler:(void (^ NS_SWIFT_SENDABLE)(void))handler API_AVAILABLE(macos(10.9), ios(6.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@end
-API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetWriter (AVAssetWriterFileTypeSpecificProperties)
/*!
@@ -417,7 +417,7 @@
This property cannot be set after writing has started.
*/
-@property (nonatomic) CMTime initialMovieFragmentInterval API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic) CMTime initialMovieFragmentInterval API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property initialMovieFragmentSequenceNumber
@@ -433,7 +433,7 @@
This property cannot be set after writing has started.
*/
-@property (nonatomic) NSInteger initialMovieFragmentSequenceNumber API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic) NSInteger initialMovieFragmentSequenceNumber API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property producesCombinableFragments
@@ -447,7 +447,7 @@
This property cannot be set after writing has started.
*/
-@property (nonatomic) BOOL producesCombinableFragments API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic) BOOL producesCombinableFragments API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property overallDurationHint
@@ -473,14 +473,14 @@
This property cannot be set after writing has started.
*/
-@property (nonatomic) CMTimeScale movieTimeScale API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic) CMTimeScale movieTimeScale API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@end
@class AVAssetWriterInputGroup;
-API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetWriter (AVAssetWriterInputGroups)
/*!
@@ -497,10 +497,10 @@
If outputFileType specifies a container format that does not support mutually exclusive relationships among tracks, or if the specified instance of AVAssetWriterInputGroup contains inputs with media types that cannot be related, the group cannot be added to the AVAssetWriter.
This method throws an exception if any of the following conditions are satisfied:
- - this writer's output file type does not support mutually exclusive relationships among tracks (allowed types are AVFileTypeQuickTimeMovie, AVFileTypeAppleM4A, AVFileTypeAppleM4V, AVFileType3GPP [iPhone only], AVFileTypeMPEG4)
+ - this writer's output file type does not support mutually exclusive relationships among tracks (allowed types are AVFileTypeQuickTimeMovie, AVFileTypeAppleM4A, AVFileTypeAppleM4V, AVFileType3GPP, AVFileTypeMPEG4)
- any AVAssetWriterInput in the input group is also present in an input group already added
*/
-- (BOOL)canAddInputGroup:(AVAssetWriterInputGroup *)inputGroup API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+- (BOOL)canAddInputGroup:(AVAssetWriterInputGroup *)inputGroup API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*
@method addInputGroup:
@@ -515,7 +515,7 @@
Input groups cannot be added after writing has started.
*/
-- (void)addInputGroup:(AVAssetWriterInputGroup *)inputGroup API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+- (void)addInputGroup:(AVAssetWriterInputGroup *)inputGroup API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property inputGroups
@@ -525,7 +525,7 @@
@discussion
The value of this property is an NSArray containing concrete instances of AVAssetWriterInputGroup. Input groups can be added to the receiver using the addInputGroup: method.
*/
-@property (nonatomic, readonly) NSArray<AVAssetWriterInputGroup *> *inputGroups API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly) NSArray<AVAssetWriterInputGroup *> *inputGroups API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@end
@@ -542,7 +542,7 @@
Note that because AVAssetWriterInputGroup is a subclass of AVMediaSelectionGroup, clients can examine the media selection options that will be available on the output asset before the asset is written. Best results for examining the options of the AVAssetWriterInputGroup will be obtained after associating the AVAssetWriterInputs of the AVAsset as appropriate via -[AVAssetWriterInput addTrackAssociationWithTrackOfInput:type:] and by initializing each AVAssetWriterInput with a source format hint, where appropriate.
*/
-API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetWriterInputGroup : AVMediaSelectionGroup
{
@private
@@ -603,7 +603,7 @@
@protocol AVAssetWriterDelegate;
-API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetWriter (AVAssetWriterSegmentation)
/*!
@@ -617,7 +617,7 @@
This property cannot be set after writing has started.
*/
-@property (nonatomic) CMTime preferredOutputSegmentInterval API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic) CMTime preferredOutputSegmentInterval API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property initialSegmentStartTime
@@ -629,7 +629,7 @@
This property cannot be set after writing has started.
*/
-@property (nonatomic) CMTime initialSegmentStartTime API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic) CMTime initialSegmentStartTime API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property outputFileTypeProfile
@@ -646,7 +646,7 @@
This property cannot be set after writing has started.
*/
-@property (nonatomic, copy, nullable) AVFileTypeProfile outputFileTypeProfile API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, copy, nullable) AVFileTypeProfile outputFileTypeProfile API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property delegate
@@ -656,7 +656,7 @@
@discussion
This property cannot be set after writing has started.
*/
-@property (weak, nullable) id <AVAssetWriterDelegate> delegate API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0)) API_UNAVAILABLE(watchos);
+@property (weak, nullable) id <AVAssetWriterDelegate> delegate API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@method flushSegment
@@ -666,11 +666,12 @@
@discussion
This method throws an exception if the delegate method to output segment data is not implemented, or if the value of the preferredOutputSegmentInterval property is not kCMTimeIndefinite.
*/
-- (void)flushSegment API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0)) API_UNAVAILABLE(watchos);
+- (void)flushSegment API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@end
-API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0)) API_UNAVAILABLE(watchos)
+NS_SWIFT_SENDABLE
+API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@protocol AVAssetWriterDelegate <NSObject>
@optional
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriterInput.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriterInput.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriterInput.h 2024-04-17 08:13:12
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriterInput.h 2024-05-30 10:53:34
@@ -4,7 +4,7 @@
Framework: AVFoundation
- Copyright 2010-2021 Apple Inc. All rights reserved.
+ Copyright 2010-2023 Apple Inc. All rights reserved.
*/
@@ -39,7 +39,7 @@
As of macOS 10.10 and iOS 8.0 AVAssetWriterInput can also be used to create tracks that are not self-contained. Such tracks reference sample data that is located in another file. This is currently supported only for instances of AVAssetWriterInput attached to an instance of AVAssetWriter that writes files of type AVFileTypeQuickTimeMovie.
*/
-API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetWriterInput : NSObject
{
@private
@@ -95,7 +95,7 @@
- the output scaling mode is AVVideoScalingModeFit
- the output settings contain AVSampleRateConverterAudioQualityKey or AVVideoDecompressionPropertiesKey
*/
-+ (instancetype)assetWriterInputWithMediaType:(AVMediaType)mediaType outputSettings:(nullable NSDictionary<NSString *, id> *)outputSettings sourceFormatHint:(nullable CMFormatDescriptionRef)sourceFormatHint API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0)) API_UNAVAILABLE(watchos);
++ (instancetype)assetWriterInputWithMediaType:(AVMediaType)mediaType outputSettings:(nullable NSDictionary<NSString *, id> *)outputSettings sourceFormatHint:(nullable CMFormatDescriptionRef)sourceFormatHint API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@method initWithMediaType:outputSettings:
@@ -152,7 +152,7 @@
- the output scaling mode is AVVideoScalingModeFit
- the output settings contain AVSampleRateConverterAudioQualityKey or AVVideoDecompressionPropertiesKey
*/
-- (instancetype)initWithMediaType:(AVMediaType)mediaType outputSettings:(nullable NSDictionary<NSString *, id> *)outputSettings sourceFormatHint:(nullable CMFormatDescriptionRef)sourceFormatHint API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0)) API_UNAVAILABLE(watchos) NS_DESIGNATED_INITIALIZER;
+- (instancetype)initWithMediaType:(AVMediaType)mediaType outputSettings:(nullable NSDictionary<NSString *, id> *)outputSettings sourceFormatHint:(nullable CMFormatDescriptionRef)sourceFormatHint API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos) NS_DESIGNATED_INITIALIZER;
/*!
@property mediaType
@@ -182,7 +182,7 @@
@discussion
AVAssetWriterInput may be able to use this hint to fill in missing output settings or perform more upfront validation. To guarantee successful file writing, clients who specify a format hint should ensure that subsequently-appended media data are of the specified format.
*/
-@property (nonatomic, readonly, nullable) __attribute__((NSObject)) CMFormatDescriptionRef sourceFormatHint API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly, nullable) __attribute__((NSObject)) CMFormatDescriptionRef sourceFormatHint API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property metadata
@@ -330,7 +330,7 @@
@end
-API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetWriterInput (AVAssetWriterInputLanguageProperties)
/*!
@@ -345,7 +345,7 @@
This property throws an exception if a language code is set which does not conform to the ISO 639-2/T language codes.
*/
-@property (nonatomic, copy, nullable) NSString *languageCode API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, copy, nullable) NSString *languageCode API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property extendedLanguageTag
@@ -359,11 +359,11 @@
This property throws an exception if an extended language tag is set which does not conform to the IETF BCP 47 (RFC 4646) language identifiers.
*/
-@property (nonatomic, copy, nullable) NSString *extendedLanguageTag API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, copy, nullable) NSString *extendedLanguageTag API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@end
-API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetWriterInput (AVAssetWriterInputPropertiesForVisualCharacteristic)
/*!
@@ -376,7 +376,7 @@
This property cannot be set after writing on the receiver's AVAssetWriter has started.
*/
-@property (nonatomic) CGSize naturalSize API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic) CGSize naturalSize API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property transform
@@ -392,7 +392,7 @@
@end
-API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetWriterInput (AVAssetWriterInputPropertiesForAudibleCharacteristic)
/*!
@@ -405,11 +405,11 @@
This property cannot be set after writing on the receiver's AVAssetWriter has started.
*/
-@property (nonatomic) float preferredVolume API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic) float preferredVolume API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@end
-API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetWriterInput (AVAssetWriterInputFileTypeSpecificProperties)
/*!
@@ -424,7 +424,7 @@
This property throws an exception if a value is set on an asset writer input that is contained in an input group.
*/
-@property (nonatomic) BOOL marksOutputTrackAsEnabled API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic) BOOL marksOutputTrackAsEnabled API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property mediaTimeScale
@@ -438,7 +438,7 @@
This property throws an exception if a value is set on an asset writer input with media type AVMediaTypeAudio.
*/
-@property (nonatomic) CMTimeScale mediaTimeScale API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic) CMTimeScale mediaTimeScale API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property preferredMediaChunkDuration
@@ -456,7 +456,7 @@
This property throws an exception if a duration is set which is non-numeric or non-positive (see CMTIME_IS_NUMERIC).
*/
-@property (nonatomic) CMTime preferredMediaChunkDuration API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic) CMTime preferredMediaChunkDuration API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property preferredMediaChunkAlignment
@@ -468,7 +468,7 @@
This property cannot be set after -startWriting has been called on the receiver.
*/
-@property (nonatomic) NSInteger preferredMediaChunkAlignment API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic) NSInteger preferredMediaChunkAlignment API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property sampleReferenceBaseURL
@@ -488,21 +488,21 @@
This property cannot be set after -startWriting has been called on the receiver.
*/
-@property (nonatomic, copy, nullable) NSURL *sampleReferenceBaseURL API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, copy, nullable) NSURL *sampleReferenceBaseURL API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
-typedef NSString *AVAssetWriterInputMediaDataLocation NS_STRING_ENUM API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0)) API_UNAVAILABLE(watchos);
+typedef NSString *AVAssetWriterInputMediaDataLocation NS_STRING_ENUM API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@constant AVAssetWriterInputMediaDataLocationInterleavedWithMainMediaData
Indicates that the media data should be interleaved with all other media data with this constant.
*/
-AVF_EXPORT AVAssetWriterInputMediaDataLocation const AVAssetWriterInputMediaDataLocationInterleavedWithMainMediaData API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT AVAssetWriterInputMediaDataLocation const AVAssetWriterInputMediaDataLocationInterleavedWithMainMediaData API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@constant AVAssetWriterInputMediaDataLocationBeforeMainMediaDataNotInterleaved
Indicates that the media data should be laid out before all the media data with AVAssetWriterInputMediaDataLocationInterleavedWithMainMediaData and not be interleaved.
*/
-AVF_EXPORT AVAssetWriterInputMediaDataLocation const AVAssetWriterInputMediaDataLocationBeforeMainMediaDataNotInterleaved API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT AVAssetWriterInputMediaDataLocation const AVAssetWriterInputMediaDataLocationBeforeMainMediaDataNotInterleaved API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property mediaDataLocation
@@ -521,11 +521,11 @@
This property cannot be set after -startWriting has been called on the receiver.
*/
-@property (nonatomic, copy) AVAssetWriterInputMediaDataLocation mediaDataLocation API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, copy) AVAssetWriterInputMediaDataLocation mediaDataLocation API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@end
-API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetWriterInput (AVAssetWriterInputTrackAssociations)
/*!
@@ -541,7 +541,7 @@
@discussion
If the type of association requires tracks of specific media types that don't match the media types of the inputs, or if the output file type does not support track associations, -canAddTrackAssociationWithTrackOfInput:type: will return NO.
*/
-- (BOOL)canAddTrackAssociationWithTrackOfInput:(AVAssetWriterInput *)input type:(NSString *)trackAssociationType API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+- (BOOL)canAddTrackAssociationWithTrackOfInput:(AVAssetWriterInput *)input type:(NSString *)trackAssociationType API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@method addTrackAssociationWithTrackOfInput:type:
@@ -560,14 +560,14 @@
This method throws an exception if the input and track association type cannot be added (see -canAddTrackAssociationWithTrackOfInput:type:).
*/
-- (void)addTrackAssociationWithTrackOfInput:(AVAssetWriterInput *)input type:(NSString *)trackAssociationType API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+- (void)addTrackAssociationWithTrackOfInput:(AVAssetWriterInput *)input type:(NSString *)trackAssociationType API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@end
@class AVAssetWriterInputPassDescription;
-API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetWriterInput (AVAssetWriterInputMultiPass)
/*!
@@ -588,7 +588,7 @@
This property cannot be set after writing on the receiver's AVAssetWriter has started.
*/
-@property (nonatomic) BOOL performsMultiPassEncodingIfSupported API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic) BOOL performsMultiPassEncodingIfSupported API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property canPerformMultiplePasses
@@ -604,7 +604,7 @@
This property is key-value observable.
*/
-@property (nonatomic, readonly) BOOL canPerformMultiplePasses API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly) BOOL canPerformMultiplePasses API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property currentPassDescription
@@ -620,7 +620,7 @@
This property is key-value observable. Observers should not assume that they will be notified of changes on a specific thread.
*/
-@property (readonly, nullable) AVAssetWriterInputPassDescription *currentPassDescription API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (readonly, nullable) AVAssetWriterInputPassDescription *currentPassDescription API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@method respondToEachPassDescriptionOnQueue:usingBlock:
@@ -645,7 +645,7 @@
This method throws an exception if called more than once.
*/
-- (void)respondToEachPassDescriptionOnQueue:(dispatch_queue_t)queue usingBlock:(dispatch_block_t NS_SWIFT_SENDABLE)block API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+- (void)respondToEachPassDescriptionOnQueue:(dispatch_queue_t)queue usingBlock:(dispatch_block_t NS_SWIFT_SENDABLE)block API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@method markCurrentPassAsFinished
@@ -665,7 +665,7 @@
Before calling this method, you must ensure that the receiver is attached to an AVAssetWriter via a prior call to -addInput: and that -startWriting has been called on the asset writer.
*/
-- (void)markCurrentPassAsFinished API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+- (void)markCurrentPassAsFinished API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@end
@@ -680,7 +680,7 @@
Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
*/
NS_SWIFT_SENDABLE
-API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetWriterInputPassDescription : NSObject
{
@private
@@ -711,7 +711,7 @@
@discussion
Instances of AVAssetWriterInputPixelBufferAdaptor provide a CVPixelBufferPool that can be used to allocate pixel buffers for writing to the output file. Using the provided pixel buffer pool for buffer allocation is typically more efficient than appending pixel buffers allocated using a separate pool.
*/
-API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetWriterInputPixelBufferAdaptor : NSObject
{
@private
@@ -839,7 +839,7 @@
@discussion
Instances of AVAssetWriterInputTaggedPixelBufferGroupAdaptor provide a CVPixelBufferPool that can be used to allocate the pixel buffers of tagged buffer groups for writing to the output file. Using the provided pixel buffer pool for buffer allocation is typically more efficient than appending pixel buffers allocated using a separate pool.
*/
-API_AVAILABLE(macos(14.0), ios(17.0)) API_UNAVAILABLE(tvos, watchos)
+API_AVAILABLE(macos(14.0), ios(17.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos)
@interface AVAssetWriterInputTaggedPixelBufferGroupAdaptor : NSObject
AV_INIT_UNAVAILABLE
@@ -973,7 +973,7 @@
Defines an interface for writing metadata, packaged as instances of AVTimedMetadataGroup, to a single AVAssetWriterInput object.
*/
-API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0)) API_UNAVAILABLE(watchos)
+API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface AVAssetWriterInputMetadataAdaptor : NSObject {
AVAssetWriterInputMetadataAdaptorInternal *_internal;
}
@@ -1056,7 +1056,7 @@
@abstract
An adaptor class for appending instances of AVCaption to an asset writer input. -[AVAssetWriterInput -appendSampleBuffer:] will throw an exception if used when this adaptor is attached.
*/
-API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos)
+API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos)
@interface AVAssetWriterInputCaptionAdaptor : NSObject
{
@private
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAsynchronousKeyValueLoading.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAsynchronousKeyValueLoading.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAsynchronousKeyValueLoading.h 2024-04-17 08:16:26
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAsynchronousKeyValueLoading.h 2024-05-30 05:00:55
@@ -19,7 +19,7 @@
AVKeyValueStatusLoaded = 2,
AVKeyValueStatusFailed = 3,
AVKeyValueStatusCancelled = 4
-} AVF_DEPRECATED_FOR_SWIFT_ONLY("Use AVAsyncProperty.Status instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+} AVF_DEPRECATED_FOR_SWIFT_ONLY("Use AVAsyncProperty.Status instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
/*!
@protocol AVAsynchronousKeyValueLoading
@@ -54,7 +54,7 @@
The sole exception to this general rule is in usage on macOS on the desktop, where it may be acceptable to block in cases in which the client is preparing objects for use on background threads or in operation queues. On platforms other than macOS, values should always be loaded asynchronously prior to calling getters for the values, in any usage scenario.
*/
-- (AVKeyValueStatus)statusOfValueForKey:(NSString *)key error:(NSError * _Nullable * _Nullable)outError AVF_DEPRECATED_FOR_SWIFT_ONLY("Use status(of:) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+- (AVKeyValueStatus)statusOfValueForKey:(NSString *)key error:(NSError * _Nullable * _Nullable)outError AVF_DEPRECATED_FOR_SWIFT_ONLY("Use status(of:) instead", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
/*!
@method loadValuesAsynchronouslyForKeys:completionHandler:
@@ -64,7 +64,7 @@
@param handler
The block to be invoked when loading succeeds, fails, or is cancelled.
*/
-- (void)loadValuesAsynchronouslyForKeys:(NSArray<NSString *> *)keys completionHandler:(nullable void (^)(void))handler AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(_:) instead. For non-deprecated properties that do not have an AVAsyncProperty equivalent, continue to query these properties synchronously", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0));
+- (void)loadValuesAsynchronouslyForKeys:(NSArray<NSString *> *)keys completionHandler:(nullable void (^ NS_SWIFT_SENDABLE)(void))handler AVF_DEPRECATED_FOR_SWIFT_ONLY("Use load(_:) instead. For non-deprecated properties that do not have an AVAsyncProperty equivalent, continue to query these properties synchronously", macos(10.7, 13.0), ios(4.0, 16.0), tvos(9.0, 16.0), watchos(1.0, 9.0), visionos(1.0, 1.0));
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAudioMix.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAudioMix.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAudioMix.h 2024-04-17 06:57:29
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAudioMix.h 2024-05-30 11:22:41
@@ -34,8 +34,7 @@
NS_ASSUME_NONNULL_BEGIN
-NS_SWIFT_NONSENDABLE
-API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0))
+API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0))
@interface AVAudioMix : NSObject <NSCopying, NSMutableCopying> {
@private
AVAudioMixInternal *_audioMix;
@@ -50,7 +49,7 @@
@class AVMutableAudioMixInternal;
NS_SWIFT_NONSENDABLE
-API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0))
+API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0))
@interface AVMutableAudioMix : AVAudioMix {
@private
AVMutableAudioMixInternal *_mutableAudioMix __attribute__((unused));
@@ -94,8 +93,7 @@
@class AVAudioMixInputParametersInternal;
-NS_SWIFT_NONSENDABLE
-API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0))
+API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0))
@interface AVAudioMixInputParameters : NSObject <NSCopying, NSMutableCopying> {
@private
AVAudioMixInputParametersInternal *_inputParameters;
@@ -114,7 +112,7 @@
Constants for various time pitch algorithms, e.g. AVAudioTimePitchSpectral, are defined in AVAudioProcessingSettings.h.
Can be nil, in which case the audioTimePitchAlgorithm set on the AVPlayerItem, AVAssetExportSession, or AVAssetReaderAudioMixOutput on which the AVAudioMix is set will be used for the associated track.
*/
-@property (nonatomic, readonly, copy, nullable) AVAudioTimePitchAlgorithm audioTimePitchAlgorithm API_AVAILABLE(macos(10.10), ios(7.0), tvos(9.0), watchos(1.0));
+@property (nonatomic, readonly, copy, nullable) AVAudioTimePitchAlgorithm audioTimePitchAlgorithm API_AVAILABLE(macos(10.10), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
#if AVF_AUDIO_PROCESSING_TAP_AVAILABLE
@@ -123,7 +121,7 @@
@property audioTapProcessor
@abstract Indicates the audio processing tap that will be used for the audio track.
*/
-@property (nonatomic, readonly, retain, nullable) __attribute__((NSObject)) MTAudioProcessingTapRef audioTapProcessor API_AVAILABLE(macos(10.9), ios(6.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly, retain, nullable) __attribute__((NSObject)) MTAudioProcessingTapRef audioTapProcessor API_AVAILABLE(macos(10.9), ios(6.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
#endif
@@ -152,7 +150,7 @@
@class AVMutableAudioMixInputParametersInternal;
NS_SWIFT_NONSENDABLE
-API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0))
+API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0))
@interface AVMutableAudioMixInputParameters : AVAudioMixInputParameters {
@private
AVMutableAudioMixInputParametersInternal *_mutableInputParameters __attribute__((unused));
@@ -185,7 +183,7 @@
Constants for various time pitch algorithms, e.g. AVAudioTimePitchSpectral, are defined in AVAudioProcessingSettings.h.
Can be nil, in which case the audioTimePitchAlgorithm set on the AVPlayerItem, AVAssetExportSession, or AVAssetReaderAudioMixOutput on which the AVAudioMix is set will be used for the associated track.
*/
-@property (nonatomic, copy, nullable) AVAudioTimePitchAlgorithm audioTimePitchAlgorithm API_AVAILABLE(macos(10.10), ios(7.0), tvos(9.0), watchos(1.0));
+@property (nonatomic, copy, nullable) AVAudioTimePitchAlgorithm audioTimePitchAlgorithm API_AVAILABLE(macos(10.10), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
#if AVF_AUDIO_PROCESSING_TAP_AVAILABLE
@@ -193,7 +191,7 @@
@property audioTapProcessor
@abstract Indicates the audio processing tap that will be used for the audio track.
*/
-@property (nonatomic, retain, nullable) __attribute__((NSObject)) MTAudioProcessingTapRef audioTapProcessor API_AVAILABLE(macos(10.9), ios(6.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, retain, nullable) __attribute__((NSObject)) MTAudioProcessingTapRef audioTapProcessor API_AVAILABLE(macos(10.9), ios(6.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
#endif
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAudioProcessingSettings.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAudioProcessingSettings.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAudioProcessingSettings.h 2024-04-17 08:13:15
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAudioProcessingSettings.h 2024-05-30 11:22:42
@@ -46,9 +46,9 @@
*/
AVF_EXPORT AVAudioTimePitchAlgorithm const AVAudioTimePitchAlgorithmLowQualityZeroLatency API_DEPRECATED("Use AVAudioTimePitchAlgorithmTimeDomain instead", ios(7.0, 15.0), tvos(9.0, 15.0), watchos(1.0, 8.0)) API_UNAVAILABLE(macos, visionos);
-AVF_EXPORT AVAudioTimePitchAlgorithm const AVAudioTimePitchAlgorithmTimeDomain API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVAudioTimePitchAlgorithm const AVAudioTimePitchAlgorithmSpectral API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVAudioTimePitchAlgorithm const AVAudioTimePitchAlgorithmVarispeed API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVAudioTimePitchAlgorithm const AVAudioTimePitchAlgorithmTimeDomain API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVAudioTimePitchAlgorithm const AVAudioTimePitchAlgorithmSpectral API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVAudioTimePitchAlgorithm const AVAudioTimePitchAlgorithmVarispeed API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@enum AVAudioSpatializationFormats
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVBase.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVBase.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVBase.h 2024-04-17 07:07:16
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVBase.h 2024-05-30 05:00:58
@@ -4,7 +4,7 @@
Framework: AVFoundation
- Copyright 2010-2023 Apple Inc. All rights reserved.
+ Copyright 2010-2024 Apple Inc. All rights reserved.
*/
@@ -208,7 +208,7 @@
#endif
-// Removing Main Actor annotations
+// For conditionalizing actor isolation annotations
#ifndef AVF_DEPLOYING_TO_2022_RELEASES_AND_LATER
#if TARGET_OS_TV
#define AVF_DEPLOYING_TO_2022_RELEASES_AND_LATER (__TV_OS_VERSION_MIN_REQUIRED >= 160000)
@@ -224,6 +224,23 @@
#define AVF_DEPLOYING_TO_2022_RELEASES_AND_LATER 0
#endif
#endif // AVF_DEPLOYING_TO_2022_RELEASES_AND_LATER
+
+// Support for conditionally-nonisolated members
+#ifndef AVF_DEPLOYING_TO_2024_RELEASES_AND_LATER
+ #if TARGET_OS_TV
+ #define AVF_DEPLOYING_TO_2024_RELEASES_AND_LATER (__TV_OS_VERSION_MIN_REQUIRED >= 180000)
+ #elif TARGET_OS_WATCH
+ #define AVF_DEPLOYING_TO_2024_RELEASES_AND_LATER (__WATCH_OS_VERSION_MIN_REQUIRED >= 110000)
+ #elif TARGET_OS_VISION
+ #define AVF_DEPLOYING_TO_2024_RELEASES_AND_LATER (__VISION_OS_VERSION_MIN_REQUIRED >= 20000)
+ #elif TARGET_OS_IPHONE
+ #define AVF_DEPLOYING_TO_2024_RELEASES_AND_LATER (__IPHONE_OS_VERSION_MIN_REQUIRED >= 180000)
+ #elif TARGET_OS_MAC
+ #define AVF_DEPLOYING_TO_2024_RELEASES_AND_LATER (__MAC_OS_X_VERSION_MIN_REQUIRED >= 150000)
+ #else
+ #define AVF_DEPLOYING_TO_2024_RELEASES_AND_LATER 0
+ #endif
+#endif // AVF_DEPLOYING_TO_2024_RELEASES_AND_LATER
#else
#import <AVFCore/AVBase.h>
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaption.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaption.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaption.h 2024-04-17 08:16:01
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaption.h 2024-05-30 11:22:41
@@ -9,7 +9,7 @@
*/
#import <AVFoundation/AVBase.h>
-#if TARGET_OS_OSX
+#if ( TARGET_OS_OSX || ( TARGET_OS_IOS && ! TARGET_OS_VISION ) )
#import <Foundation/Foundation.h>
#import <CoreGraphics/CoreGraphics.h>
@@ -76,21 +76,21 @@
@abstract Makes an AVCaptionDimension from a value and units.
*/
AVF_EXPORT AVCaptionDimension AVCaptionDimensionMake( CGFloat value, AVCaptionUnitsType units )
-API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos);
+API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos);
/*!
@function AVCaptionPointMake
@abstract Makes an AVCaptionPoint from x and y coordinate AVCaptionDimensions.
*/
AVF_EXPORT AVCaptionPoint AVCaptionPointMake( AVCaptionDimension x, AVCaptionDimension y )
-API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos);
+API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos);
/*!
@function AVCaptionSizeMake
@abstract Makes an AVCaptionSize from width and height AVCaptionDimensions.
*/
AVF_EXPORT AVCaptionSize AVCaptionSizeMake( AVCaptionDimension width, AVCaptionDimension height )
-API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos);
+API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos);
/*!
@enum AVCaptionRegionDisplayAlignment
@@ -115,7 +115,7 @@
AVCaptionRegionDisplayAlignmentBefore = 0,
AVCaptionRegionDisplayAlignmentCenter = 1,
AVCaptionRegionDisplayAlignmentAfter = 2,
-} API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos);
+} API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos);
/*!
@enum AVCaptionRegionWritingMode
@@ -128,7 +128,7 @@
typedef NS_ENUM(NSInteger, AVCaptionRegionWritingMode) {
AVCaptionRegionWritingModeLeftToRightAndTopToBottom = 0,
AVCaptionRegionWritingModeTopToBottomAndRightToLeft = 2,
-} API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos);
+} API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos);
/*!
@enum AVCaptionRegionScroll
@@ -141,7 +141,7 @@
typedef NS_ENUM(NSInteger, AVCaptionRegionScroll) {
AVCaptionRegionScrollNone = 0,
AVCaptionRegionScrollRollUp = 1,
-} API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos);
+} API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos);
/*!
@class AVCaptionRegion
@@ -150,8 +150,7 @@
@discussion
Currently, there is just four predefined region instances. The interface doesn't support configuration of region settings.
*/
-NS_SWIFT_NONSENDABLE
-API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos)
+API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos)
@interface AVCaptionRegion : NSObject <NSCopying, NSMutableCopying, NSSecureCoding>
/*!
@@ -293,7 +292,7 @@
Mutable subclass of AVCaptionRegion.
*/
NS_SWIFT_NONSENDABLE
-API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos)
+API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos)
@interface AVMutableCaptionRegion : AVCaptionRegion
/*!
@@ -336,14 +335,14 @@
@abstract
Alignment of lines in the region.
*/
-@property (nonatomic, assign) AVCaptionRegionDisplayAlignment displayAlignment API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos);
+@property (nonatomic, assign) AVCaptionRegionDisplayAlignment displayAlignment API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos);
/*!
@property writingMode
@abstract
The block and inline progression direction of the region.
*/
-@property (nonatomic, assign) AVCaptionRegionWritingMode writingMode API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos);
+@property (nonatomic, assign) AVCaptionRegionWritingMode writingMode API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos);
@end
/*!
@@ -357,7 +356,7 @@
typedef NS_ENUM(NSInteger, AVCaptionAnimation) {
AVCaptionAnimationNone = 0,
AVCaptionAnimationCharacterReveal = 1,
-} API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos);
+} API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos);
/*!
@class AVCaption
@@ -366,8 +365,7 @@
@discussion
A caption contains one meaningful sentence, paragraph, or otherwise known as a caption cue. Within the active time range, it may perform animation (e.g. Karaoke), rolling-up, changes the visibility, or any other dynamic styling.
*/
-NS_SWIFT_NONSENDABLE
-API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos)
+API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos)
@interface AVCaption : NSObject <NSCopying, NSMutableCopying, NSSecureCoding>
AV_INIT_UNAVAILABLE
@@ -435,7 +433,7 @@
Mutable subclass of AVCaption.
*/
NS_SWIFT_NONSENDABLE
-API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos)
+API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos)
@interface AVMutableCaption : AVCaption
/*!
@@ -469,7 +467,7 @@
AVCaptionFontWeightUnknown = 0,
AVCaptionFontWeightNormal = 1,
AVCaptionFontWeightBold = 2
-} API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos);
+} API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos);
/*!
@enum AVCaptionFontStyle
@@ -484,7 +482,7 @@
AVCaptionFontStyleUnknown = 0,
AVCaptionFontStyleNormal = 1,
AVCaptionFontStyleItalic = 2
-} API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos);
+} API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos);
/*!
@enum AVCaptionDecoration
@@ -501,7 +499,7 @@
AVCaptionDecorationUnderline = 1 << 0,
AVCaptionDecorationLineThrough = 1 << 1,
AVCaptionDecorationOverline = 1 << 2,
-} API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos);
+} API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos);
/*!
@enum AVCaptionTextCombine
@@ -538,7 +536,7 @@
AVCaptionTextCombineTwoDigits = 2,
AVCaptionTextCombineThreeDigits = 3,
AVCaptionTextCombineFourDigits = 4,
-} API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos);
+} API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos);
/*!
@enum AVCaptionTextAlignment
@@ -561,7 +559,7 @@
AVCaptionTextAlignmentCenter = 2,
AVCaptionTextAlignmentLeft = 3,
AVCaptionTextAlignmentRight = 4,
-} API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos);
+} API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos);
@interface AVCaption (Styling)
@@ -839,7 +837,7 @@
typedef NS_ENUM(NSInteger, AVCaptionRubyPosition) {
AVCaptionRubyPositionBefore = 0,
AVCaptionRubyPositionAfter = 1,
-} API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos);
+} API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos);
/*!
@enum AVCaptionRubyAlignment
@@ -871,7 +869,7 @@
AVCaptionRubyAlignmentCenter = 1,
AVCaptionRubyAlignmentDistributeSpaceBetween = 2,
AVCaptionRubyAlignmentDistributeSpaceAround = 3,
-} API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos);
+} API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos);
/*!
@class AVCaptionRuby
@@ -879,7 +877,7 @@
Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
*/
NS_SWIFT_SENDABLE
-API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos)
+API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos)
@interface AVCaptionRuby : NSObject <NSCopying, NSSecureCoding>
AV_INIT_UNAVAILABLE
@@ -912,7 +910,7 @@
NS_ASSUME_NONNULL_END
-#endif // TARGET_OS_OSX
+#endif // ( TARGET_OS_OSX || ( TARGET_OS_IOS && ! TARGET_OS_VISION ) )
#else
#import <AVFCore/AVCaption.h>
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionConversionValidator.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionConversionValidator.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionConversionValidator.h 2024-04-17 08:16:00
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionConversionValidator.h 2024-05-30 05:30:49
@@ -9,7 +9,7 @@
*/
#import <AVFoundation/AVBase.h>
-#if TARGET_OS_OSX
+#if ( TARGET_OS_OSX || ( TARGET_OS_IOS && ! TARGET_OS_VISION ) )
#import <AVFoundation/AVCaption.h>
#import <AVFoundation/AVCaptionSettings.h>
@@ -38,14 +38,14 @@
AVCaptionConversionValidatorStatusValidating = 1,
AVCaptionConversionValidatorStatusCompleted = 2,
AVCaptionConversionValidatorStatusStopped = 3
-} API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos);
+} API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0), visionos(2.0)) API_UNAVAILABLE(watchos, tvos);
/*!
@class AVCaptionConversionValidator
@abstract Performs a validation of captions for a conversion operation and warns about problems that are encountered.
*/
NS_SWIFT_NONSENDABLE
-API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos)
+API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0), visionos(2.0)) API_UNAVAILABLE(watchos, tvos)
@interface AVCaptionConversionValidator : NSObject
AV_INIT_UNAVAILABLE
@@ -106,7 +106,7 @@
If you wish to stop a validation operation in progress before it has been completed, send the message stopValidating to the receiver.
When the validation is complete and all warnings have been reported, the block will be executed once with a value of nil for its warning parameter. When this occurs, the value of status will have been changed to AVCaptionConversionValidatorStatusCompleted.
*/
-- (void)validateCaptionConversionWithWarningHandler:(void (^)(AVCaptionConversionWarning * _Nullable warning))handler;
+- (void)validateCaptionConversionWithWarningHandler:(void (^ NS_SWIFT_SENDABLE)(AVCaptionConversionWarning * _Nullable warning))handler;
/*!
@method stopValidating
@@ -130,13 +130,13 @@
@typedef AVCaptionConversionWarningType
@abstract The type of a caption conversion warning.
*/
-typedef NSString *AVCaptionConversionWarningType NS_TYPED_ENUM API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos);
+typedef NSString *AVCaptionConversionWarningType NS_TYPED_ENUM API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0), visionos(2.0)) API_UNAVAILABLE(watchos, tvos);
/*!
@constant AVCaptionConversionWarningTypeExcessMediaData
@abstract Indicates that one or more captions in the validator's captions array exceed the capacity for media data of the media type and subtype specified by the conversion settings.
*/
-AVF_EXPORT AVCaptionConversionWarningType const AVCaptionConversionWarningTypeExcessMediaData API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos);
+AVF_EXPORT AVCaptionConversionWarningType const AVCaptionConversionWarningTypeExcessMediaData API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0), visionos(2.0)) API_UNAVAILABLE(watchos, tvos);
/*!
@class AVCaptionConversionWarning
@@ -144,7 +144,7 @@
@discussion Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
*/
NS_SWIFT_SENDABLE
-API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos)
+API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0), visionos(2.0)) API_UNAVAILABLE(watchos, tvos)
@interface AVCaptionConversionWarning : NSObject
AV_INIT_UNAVAILABLE
@@ -174,13 +174,13 @@
@typedef AVCaptionConversionAdjustmentType
@abstract The type of a caption conversion adjustment.
*/
-typedef NSString *AVCaptionConversionAdjustmentType NS_TYPED_ENUM API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos);
+typedef NSString *AVCaptionConversionAdjustmentType NS_TYPED_ENUM API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0), visionos(2.0)) API_UNAVAILABLE(watchos, tvos);
/*!
@constant AVCaptionConversionAdjustmentTypeTimeRange
@abstract Indicates a timing adjustment.
*/
-AVF_EXPORT AVCaptionConversionAdjustmentType const AVCaptionConversionAdjustmentTypeTimeRange API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos);
+AVF_EXPORT AVCaptionConversionAdjustmentType const AVCaptionConversionAdjustmentTypeTimeRange API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0), visionos(2.0)) API_UNAVAILABLE(watchos, tvos);
/*!
@class AVCaptionConversionAdjustment
@@ -188,7 +188,7 @@
@discussion Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
*/
NS_SWIFT_SENDABLE
-API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos)
+API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0), visionos(2.0)) API_UNAVAILABLE(watchos, tvos)
@interface AVCaptionConversionAdjustment : NSObject
AV_INIT_UNAVAILABLE
@@ -206,7 +206,7 @@
@discussion Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
*/
NS_SWIFT_SENDABLE
-API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos)
+API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0), visionos(2.0)) API_UNAVAILABLE(watchos, tvos)
@interface AVCaptionConversionTimeRangeAdjustment : AVCaptionConversionAdjustment
AV_INIT_UNAVAILABLE
@@ -228,7 +228,7 @@
NS_ASSUME_NONNULL_END
-#endif // TARGET_OS_OSX
+#endif // ( TARGET_OS_OSX || ( TARGET_OS_IOS && ! TARGET_OS_VISION ) )
#else
#import <AVFCore/AVCaptionConversionValidator.h>
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionFormatConformer.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionFormatConformer.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionFormatConformer.h 2024-04-17 08:13:15
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionFormatConformer.h 2024-05-30 11:22:42
@@ -9,7 +9,7 @@
*/
#import <AVFoundation/AVBase.h>
-#if TARGET_OS_OSX
+#if ( TARGET_OS_OSX || ( TARGET_OS_IOS && ! TARGET_OS_VISION ) )
#import <Foundation/Foundation.h>
#import <AVFoundation/AVCaption.h>
@@ -23,7 +23,7 @@
Performs a conversion of canonical caption to conform to a specific format.
*/
NS_SWIFT_NONSENDABLE
-API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos)
+API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos)
@interface AVCaptionFormatConformer : NSObject
AV_INIT_UNAVAILABLE
@@ -73,7 +73,7 @@
NS_ASSUME_NONNULL_END
-#endif // TARGET_OS_OSX
+#endif // ( TARGET_OS_OSX || ( TARGET_OS_IOS && ! TARGET_OS_VISION ) )
#else
#import <AVFCore/AVCaptionFormatConformer.h>
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionGroup.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionGroup.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionGroup.h 2024-04-17 08:13:15
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionGroup.h 2024-05-30 11:22:42
@@ -4,12 +4,12 @@
Framework: AVFoundation
- Copyright 2015-2021 Apple Inc. All rights reserved.
+ Copyright 2015-2023 Apple Inc. All rights reserved.
*/
#import <AVFoundation/AVBase.h>
-#if TARGET_OS_OSX
+#if ( TARGET_OS_OSX || ( TARGET_OS_IOS && ! TARGET_OS_VISION ) )
#import <Foundation/Foundation.h>
#import <CoreMedia/CMTimeRange.h>
@@ -41,7 +41,7 @@
A client may use AVCaptionGroup to get the list of active captions for the time range. For example, presentation processing may find the AVCaptionGroup object for the current time, get the list of captions, and place them into the destination display region.
*/
-API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos)
+API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos)
@interface AVCaptionGroup : NSObject
{
@private
@@ -96,7 +96,7 @@
NS_ASSUME_NONNULL_END
-#endif // TARGET_OS_OSX
+#endif // ( TARGET_OS_OSX || ( TARGET_OS_IOS && ! TARGET_OS_VISION ) )
#else
#import <AVFCore/AVCaptionGroup.h>
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionGrouper.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionGrouper.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionGrouper.h 2024-04-17 08:13:14
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionGrouper.h 2024-05-30 11:22:42
@@ -9,7 +9,7 @@
*/
#import <AVFoundation/AVBase.h>
-#if TARGET_OS_OSX
+#if ( TARGET_OS_OSX || ( TARGET_OS_IOS && ! TARGET_OS_VISION ) )
#import <Foundation/Foundation.h>
#import <AVFoundation/AVCaption.h>
@@ -18,7 +18,7 @@
NS_ASSUME_NONNULL_BEGIN
NS_SWIFT_NONSENDABLE
-API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos)
+API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos)
@interface AVCaptionGrouper : NSObject
{
@private
@@ -32,7 +32,7 @@
NS_ASSUME_NONNULL_END
-#endif //TARGET_OS_OSX
+#endif // ( TARGET_OS_OSX || ( TARGET_OS_IOS && ! TARGET_OS_VISION ) )
#else
#import <AVFCore/AVCaptionGrouper.h>
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionRenderer.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionRenderer.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionRenderer.h 2024-04-17 08:16:01
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionRenderer.h 2024-05-30 04:04:13
@@ -9,7 +9,7 @@
*/
#import <AVFoundation/AVBase.h>
-#if TARGET_OS_OSX
+#if ( TARGET_OS_OSX || ( TARGET_OS_IOS && ! TARGET_OS_VISION ) )
#import <Foundation/Foundation.h>
#import <AVFoundation/AVCaption.h>
@@ -31,7 +31,7 @@
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)) API_UNAVAILABLE(ios, tvos, watchos)
+API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos)
@interface AVCaptionRenderer : NSObject
{
@private
@@ -97,7 +97,7 @@
Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
*/
NS_SWIFT_SENDABLE
-API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos)
+API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos)
@interface AVCaptionRendererScene : NSObject <NSCopying>
{
@private
@@ -135,7 +135,8 @@
NS_ASSUME_NONNULL_END
-#endif // TARGET_OS_OSX
+#endif // ( TARGET_OS_OSX || ( TARGET_OS_IOS && ! TARGET_OS_VISION ) )
+
#else
#import <AVFCore/AVCaptionRenderer.h>
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionSettings.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionSettings.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionSettings.h 2024-04-17 08:13:15
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptionSettings.h 2024-05-30 11:22:42
@@ -4,12 +4,12 @@
Framework: AVFoundation
- Copyright 2018-2021 Apple Inc. All rights reserved.
+ Copyright 2018-2023 Apple Inc. All rights reserved.
*/
#import <AVFoundation/AVBase.h>
-#if TARGET_OS_OSX
+#if ( TARGET_OS_OSX || ( TARGET_OS_IOS && ! TARGET_OS_VISION ) )
#import <Foundation/Foundation.h>
@@ -22,13 +22,13 @@
@typedef AVCaptionSettingsKey
@abstract Keys for the captions settings dictionary.
*/
-typedef NSString * AVCaptionSettingsKey NS_TYPED_ENUM API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos);
+typedef NSString * AVCaptionSettingsKey NS_TYPED_ENUM API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0), visionos(2.0)) API_UNAVAILABLE(watchos, tvos);
/*!
@constant AVCaptionMediaTypeKey
@abstract Indicates the output media type of a caption conversion operation. For example, AVMediaTypeClosedCaption.
*/
-AVF_EXPORT AVCaptionSettingsKey const AVCaptionMediaTypeKey API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos);
+AVF_EXPORT AVCaptionSettingsKey const AVCaptionMediaTypeKey API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0), visionos(2.0)) API_UNAVAILABLE(watchos, tvos);
/*!
@constant AVCaptionMediaSubTypeKey
@@ -36,7 +36,7 @@
@discussion
Both numeric and string forms of media subtypes are accepted for caption conversions, so you could, for example, use @"c608" instead of [NSNumber numberWithInt:kCMClosedCaptionFormatType_CEA608].
*/
-AVF_EXPORT AVCaptionSettingsKey const AVCaptionMediaSubTypeKey API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos);
+AVF_EXPORT AVCaptionSettingsKey const AVCaptionMediaSubTypeKey API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0), visionos(2.0)) API_UNAVAILABLE(watchos, tvos);
/*!
@constant AVCaptionTimeCodeFrameDurationKey
@@ -46,7 +46,7 @@
For example, if the time code steps for every 1001 / 30000 seconds, the value should be CMTime(value: 1001, scale: 30000).
*/
-AVF_EXPORT AVCaptionSettingsKey const AVCaptionTimeCodeFrameDurationKey API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos); // CMTime as NSValue through +[NSValue valueWithCMTime] in AVTime.h
+AVF_EXPORT AVCaptionSettingsKey const AVCaptionTimeCodeFrameDurationKey API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0), visionos(2.0)) API_UNAVAILABLE(watchos, tvos); // CMTime as NSValue through +[NSValue valueWithCMTime] in AVTime.h
/*!
@constant AVCaptionUseDropFrameTimeCodeKey
@@ -57,9 +57,9 @@
When the value for this key is a NSNumber indicating the BOOL NO, the receiver will use the non-drop frame time code.
The default is NO.
*/
-AVF_EXPORT AVCaptionSettingsKey const AVCaptionUseDropFrameTimeCodeKey API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos);
+AVF_EXPORT AVCaptionSettingsKey const AVCaptionUseDropFrameTimeCodeKey API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0), visionos(2.0)) API_UNAVAILABLE(watchos, tvos);
-#endif // TARGET_OS_OSX
+#endif // ( TARGET_OS_OSX || ( TARGET_OS_IOS && ! TARGET_OS_VISION ) )
#else
#import <AVFCore/AVCaptionSettings.h>
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureAudioDataOutput.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureAudioDataOutput.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureAudioDataOutput.h 2024-04-08 15:36:19
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureAudioDataOutput.h 2024-05-31 06:39:09
@@ -52,7 +52,7 @@
Clients that need to minimize the chances of samples being dropped should specify a queue on which a sufficiently small amount of processing is being done outside of receiving sample buffers. However, if such clients migrate extra processing to another queue, they are responsible for ensuring that memory usage does not grow without bound from samples that have not been processed.
- A serial dispatch queue must be used to guarantee that audio samples will be delivered in order. The sampleBufferCallbackQueue parameter may not be NULL, except when setting sampleBufferDelegate to nil.
+ A serial dispatch queue must be used to guarantee that audio samples will be delivered in order. The sampleBufferCallbackQueue parameter may not be NULL, except when setting sampleBufferDelegate to nil otherwise -setSampleBufferDelegate:queue: throws an NSInvalidArgumentException.
*/
- (void)setSampleBufferDelegate:(nullable id<AVCaptureAudioDataOutputSampleBufferDelegate>)sampleBufferDelegate queue:(nullable dispatch_queue_t)sampleBufferCallbackQueue;
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDataOutputSynchronizer.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDataOutputSynchronizer.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDataOutputSynchronizer.h 2024-04-19 07:11:08
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDataOutputSynchronizer.h 2024-05-31 06:31:08
@@ -71,7 +71,7 @@
@discussion
AVCaptureDataOutputSynchronizer gathers data from its dataOutputs, and when it determines that all data has been received for a given timestamp, it calls the specified delegate on the specified delegateCallbackQueue. AVCaptureDataOutputSynchronizer overrides all the data outputs' delegates and callbacks. Data outputs under the control of AVCaptureDataOutputSynchronizer do not fire delegate callbacks. Delegate callbacks are restored to individual data outputs when you call this method with nil as your delegate and NULL as your delegateCallbackQueue.
- A serial dispatch queue must be used to guarantee that synchronized data will be delivered in order. The delegateCallbackQueue parameter may not be NULL, except when setting the delegate to nil.
+ A serial dispatch queue must be used to guarantee that synchronized data will be delivered in order. The delegateCallbackQueue parameter may not be NULL, except when setting the delegate to nil otherwise -setDelegate:queue: throws an NSInvalidArgumentException.
*/
- (void)setDelegate:(nullable id<AVCaptureDataOutputSynchronizerDelegate>)delegate queue:(nullable dispatch_queue_t)delegateCallbackQueue;
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDepthDataOutput.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDepthDataOutput.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDepthDataOutput.h 2024-04-19 08:22:48
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDepthDataOutput.h 2024-05-31 06:48:14
@@ -54,7 +54,7 @@
Clients who need to minimize the chances of depth data being dropped should provide a dedicated queue and not share it with other data outputs. Processing of depth data may be deferred to another queue, but beware that the depth data pixel buffer maps may come from a finite buffer pool, which may be starved if your deferred processing fails to keep up.
- A serial dispatch queue must be used to guarantee that depth data will be delivered in order. The callbackQueue parameter may not be NULL, except when setting the delegate to nil.
+ A serial dispatch queue must be used to guarantee that depth data will be delivered in order. The callbackQueue parameter may not be NULL, except when setting the delegate to nil otherwise -setDelegate:callbackQueue: throws an NSInvalidArgumentException.
*/
- (void)setDelegate:(nullable id<AVCaptureDepthDataOutputDelegate>)delegate callbackQueue:(nullable dispatch_queue_t)callbackQueue;
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h 2024-04-19 07:14:09
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h 2024-05-30 08:09:52
@@ -28,7 +28,7 @@
@discussion
The notification object is an AVCaptureDevice instance representing the device that became available.
*/
-AVF_EXPORT NSString *const AVCaptureDeviceWasConnectedNotification API_AVAILABLE(macos(10.7), ios(4.0), macCatalyst(14.0), tvos(17.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSNotificationName const AVCaptureDeviceWasConnectedNotification NS_SWIFT_NAME(AVCaptureDevice.wasConnectedNotification) API_AVAILABLE(macos(10.7), ios(4.0), macCatalyst(14.0), tvos(17.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
/*!
@constant AVCaptureDeviceWasDisconnectedNotification
@@ -38,7 +38,7 @@
@discussion
The notification object is an AVCaptureDevice instance representing the device that became unavailable.
*/
-AVF_EXPORT NSString *const AVCaptureDeviceWasDisconnectedNotification API_AVAILABLE(macos(10.7), ios(4.0), macCatalyst(14.0), tvos(17.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSNotificationName const AVCaptureDeviceWasDisconnectedNotification NS_SWIFT_NAME(AVCaptureDevice.wasDisconnectedNotification) API_AVAILABLE(macos(10.7), ios(4.0), macCatalyst(14.0), tvos(17.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
/*!
@constant AVCaptureDeviceSubjectAreaDidChangeNotification
@@ -48,7 +48,7 @@
@discussion
Clients may observe the AVCaptureDeviceSubjectAreaDidChangeNotification to know when an instance of AVCaptureDevice has detected a substantial change to the video subject area. This notification is only sent if you first set subjectAreaChangeMonitoringEnabled to YES.
*/
-AVF_EXPORT NSString *const AVCaptureDeviceSubjectAreaDidChangeNotification API_AVAILABLE(ios(5.0), macCatalyst(14.0), tvos(17.0)) API_UNAVAILABLE(macos, visionos) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSNotificationName const AVCaptureDeviceSubjectAreaDidChangeNotification NS_SWIFT_NAME(AVCaptureDevice.subjectAreaDidChangeNotification) API_AVAILABLE(ios(5.0), macCatalyst(14.0), tvos(17.0)) API_UNAVAILABLE(macos, visionos) API_UNAVAILABLE(watchos);
#pragma mark - AVCaptureDevice
@@ -342,6 +342,8 @@
- The receiver's AVCaptureDeviceInput is added to a session
When exposureMode is AVCaptureExposureModeCustom, setting the activeVideoMinFrameDuration affects max frame rate, but not exposureDuration. You may use setExposureModeCustomWithDuration:ISO:completionHandler: to set a shorter exposureDuration than your activeVideoMinFrameDuration, if desired.
+
+ When autoVideoFrameRateEnabled is true, setting activeVideoMinFrameDuration throws an NSInvalidArgumentException.
*/
@property(nonatomic) CMTime activeVideoMinFrameDuration API_AVAILABLE(ios(7.0), macCatalyst(14.0), tvos(17.0), visionos(1.0));
@@ -365,10 +367,26 @@
- The receiver's AVCaptureDeviceInput is added to a session
When exposureMode is AVCaptureExposureModeCustom, frame rate and exposure duration are interrelated. If you call setExposureModeCustomWithDuration:ISO:completionHandler: with an exposureDuration longer than the current activeVideoMaxFrameDuration, the activeVideoMaxFrameDuration will be lengthened to accommodate the longer exposure time. Setting a shorter exposure duration does not automatically change the activeVideoMinFrameDuration or activeVideoMaxFrameDuration. To explicitly increase the frame rate in custom exposure mode, you must set the activeVideoMaxFrameDuration to a shorter value. If your new max frame duration is shorter than the current exposureDuration, the exposureDuration will shorten as well to accommodate the new frame rate.
+
+ When autoVideoFrameRateEnabled is true, setting activeVideoMaxFrameDuration throws an NSInvalidArgumentException.
*/
@property(nonatomic) CMTime activeVideoMaxFrameDuration API_AVAILABLE(macos(10.9), ios(7.0), macCatalyst(14.0), tvos(17.0), visionos(1.0));
/*!
+ @property autoVideoFrameRateEnabled
+ @abstract
+ Indicates whether the receiver should enable auto video frame rate.
+
+@discussion
+ When enabled the receiver automatically adjusts the active frame rate, depending on light level. Under low light conditions, frame rate is decreased to properly expose the scene. For formats with a maximum frame rate of 30 fps, the frame rate switches between 30 - 24. For formats with a maximum frame rate of 60 fps, the frame rate switches between 60 - 30 - 24.
+
+ Setting this property throws an NSInvalidArgumentException if the active format's -isAutoVideoFrameRateSupported returns NO. Changing the device's active format resets isAutoVideoFrameRateEnabled to its default value of NO.
+
+ When autoVideoFrameRateEnabled is true, setting activeVideoMinFrameDuration or activeVideoMaxFrameDuration throws an NSInvalidArgumentException.
+ */
+@property(nonatomic, getter=isAutoVideoFrameRateEnabled) BOOL autoVideoFrameRateEnabled API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+
+/*!
@property inputSources
@abstract
An array of AVCaptureDeviceInputSource objects supported by the receiver.
@@ -442,7 +460,7 @@
Starting in Mac Catalyst 17.0, apps may opt in for using AVCaptureDeviceTypeExternal by adding the following key to their Info.plist:
<key>NSCameraUseExternalDeviceType</key>
<true/>
-
+
Otherwise, external cameras on Mac Catalyst report that their device type is AVCaptureDeviceTypeBuiltInWideAngleCamera.
*/
AVF_EXPORT AVCaptureDeviceType const AVCaptureDeviceTypeExternal API_AVAILABLE(macos(14.0), ios(17.0), macCatalyst(17.0), tvos(17.0)) API_UNAVAILABLE(watchos) API_UNAVAILABLE(visionos);
@@ -2367,6 +2385,29 @@
@end
+API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos)
+@interface AVCaptureDevice (AVCaptureDeviceBackgroundReplacement)
+
+/*!
+ @property backgroundReplacementEnabled
+ @abstract
+ A class property indicating whether the user has enabled the Background Replacement feature for this application.
+ */
+@property(class, readonly, getter=isBackgroundReplacementEnabled) BOOL backgroundReplacementEnabled API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+
+/*!
+ @property backgroundReplacementActive
+ @abstract
+ Indicates whether Background Replacement is currently active on a particular AVCaptureDevice.
+
+ @discussion
+ This property is key-value observable.
+ */
+@property(nonatomic, readonly, getter=isBackgroundReplacementActive) BOOL backgroundReplacementActive API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+
+@end
+
+
API_AVAILABLE(macos(13.0), ios(16.0), macCatalyst(16.0), tvos(17.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos)
@interface AVCaptureDevice (AVCaptureDeviceContinuityCamera)
@@ -2477,6 +2518,41 @@
@end
+/*!
+ @group AVSpatialCaptureDiscomfortReason string constants
+
+ @discussion
+ The AVSpatialCaptureDiscomfortReason string constants are used to report the applicability of the current scene to create a comfortable viewing experience.
+ */
+typedef NSString *AVSpatialCaptureDiscomfortReason NS_TYPED_ENUM API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+
+/*!
+ @constant AVSpatialCaptureDiscomfortReasonNotEnoughLight
+ The lighting of the current scene is not bright enough; the playback experience will likely be uncomfortable due to noise differences between the two cameras.
+ */
+AVF_EXPORT AVSpatialCaptureDiscomfortReason const AVSpatialCaptureDiscomfortReasonNotEnoughLight API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+
+/*!
+ @constant AVSpatialCaptureDiscomfortReasonSubjectTooClose
+ The focus point of the current scene is too close; the playback experience will likely be uncomfortable due to the subject being closer than the minimum focus distance of one or both of the lenses.
+ */
+AVF_EXPORT AVSpatialCaptureDiscomfortReason const AVSpatialCaptureDiscomfortReasonSubjectTooClose API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+
+
+@interface AVCaptureDevice (AVCaptureDeviceSpatialCapture)
+
+/*!
+ @property spatialCaptureDiscomfortReasons
+ @abstract
+ Indicates whether or not the current environmental conditions are amenable to a spatial capture that is comfortable to view.
+
+ @discussion
+ This property can be monitored in order to determine the presentation of U/I elements to inform the user that they should reframe their scene for a more pleasing spatial capture ("subject is too close", "scene is too dark").
+ */
+@property(nonatomic, readonly) NSSet<AVSpatialCaptureDiscomfortReason> *spatialCaptureDiscomfortReasons API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+@end
+
+
#pragma mark - AVCaptureDeviceDiscoverySession
/*!
@@ -2736,6 +2812,8 @@
Indicates that the video should be stabilized using the extended cinematic stabilization algorithm. Enabling extended cinematic stabilization introduces longer latency into the video capture pipeline compared to the AVCaptureVideoStabilizationModeCinematic and consumes more memory, but yields improved stability. It is recommended to use identical or similar min and max frame durations in conjunction with this mode.
@constant AVCaptureVideoStabilizationModePreviewOptimized
Indicates that video should be stabilized using the preview optimized stabilization algorithm. Preview stabilization is a low latency and low power algorithm which is supported only on connections which either have an associated preview layer or have a preview-sized VideoDataOutput.
+ @constant AVCaptureVideoStabilizationModeCinematicExtendedEnhanced
+ Indicates that the video should be stabilized using the enhanced extended cinematic stabilization algorithm. Enhanced extended cinematic has a reduced field of view compared to extended cinematic, without any noticeable increase in latency, and it yields improved stability. It is recommended to use identical or similar min and max frame durations in conjunction with this mode.
@constant AVCaptureVideoStabilizationModeAuto
Indicates that the most appropriate video stabilization mode for the device and format should be chosen.
*/
@@ -2745,6 +2823,7 @@
AVCaptureVideoStabilizationModeCinematic = 2,
AVCaptureVideoStabilizationModeCinematicExtended API_AVAILABLE(ios(13.0), macCatalyst(14.0), tvos(17.0)) API_UNAVAILABLE(visionos) = 3,
AVCaptureVideoStabilizationModePreviewOptimized API_AVAILABLE(ios(17.0), macCatalyst(17.0), tvos(17.0)) API_UNAVAILABLE(macos, visionos) = 4,
+ AVCaptureVideoStabilizationModeCinematicExtendedEnhanced API_AVAILABLE(ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(macos, visionos) = 5,
AVCaptureVideoStabilizationModeAuto = -1,
} API_AVAILABLE(ios(8.0), macCatalyst(14.0), tvos(17.0)) API_UNAVAILABLE(macos, visionos) API_UNAVAILABLE(watchos);
@@ -3089,6 +3168,16 @@
*/
@property(nonatomic, readonly) NSArray<NSNumber *> *secondaryNativeResolutionZoomFactors API_AVAILABLE(ios(16.0), macos(13.0), macCatalyst(16.0), tvos(17.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos) NS_REFINED_FOR_SWIFT;
+/*!
+ @property autoVideoFrameRateSupported
+ @abstract
+ Indicates whether the device format supports auto video frame rate.
+
+ @discussion
+ See -[AVCaptureDevice autoVideoFrameRateEnabled] (above) for a detailed description of the feature.
+ */
+@property(nonatomic, readonly, getter=isAutoVideoFrameRateSupported) BOOL autoVideoFrameRateSupported API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+
@end
@@ -3124,6 +3213,19 @@
@end
+API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos)
+@interface AVCaptureDeviceFormat (AVCaptureDeviceFormatSpatialVideoCapture)
+
+/*!
+ @property spatialVideoCaptureSupported
+ @abstract
+ Returns whether or not the format supports capturing spatial video to a file.
+ */
+@property(nonatomic, readonly, getter=isSpatialVideoCaptureSupported) BOOL spatialVideoCaptureSupported;
+
+@end
+
+
API_AVAILABLE(macos(10.7), ios(7.0), macCatalyst(14.0), tvos(17.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos)
@interface AVCaptureDeviceFormat (AVCaptureDeviceFormatGeometricDistortionCorrection)
@@ -3287,6 +3389,32 @@
Unlike the other video effects, enabling reaction effects does not limit the stream's frame rate because most of the time no rendering is being performed. The frame rate will only ramp down when a reaction is actually being rendered on the stream (see AVCaptureDevice.reactionEffectsInProgress)
*/
@property(nonatomic, readonly, nullable) AVFrameRateRange *videoFrameRateRangeForReactionEffectsInProgress API_AVAILABLE(macos(14.0), ios(17.0), macCatalyst(17.0), tvos(17.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+
+@end
+
+
+API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos)
+@interface AVCaptureDeviceFormat (AVCaptureDeviceFormatBackgroundReplacement)
+
+/*!
+ @property backgroundReplacementSupported
+ @abstract
+ Indicates whether the format supports the Background Replacement feature.
+
+ @discussion
+ This property returns YES if the format supports Background Replacement background replacement. See +AVCaptureDevice.backgroundReplacementEnabled.
+ */
+@property(nonatomic, readonly, getter=isBackgroundReplacementSupported) BOOL backgroundReplacementSupported API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+
+/*!
+ @property videoFrameRateRangeForBackgroundReplacement
+ @abstract
+ Indicates the minimum / maximum frame rates available when background replacement is active.
+
+ @discussion
+ Devices may support a limited frame rate range when Background Replacement is active. If this device format does not support Background Replacement, this property returns nil.
+ */
+@property(nonatomic, readonly, nullable) AVFrameRateRange *videoFrameRateRangeForBackgroundReplacement API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureFileOutput.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureFileOutput.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureFileOutput.h 2024-04-19 08:10:11
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureFileOutput.h 2024-05-31 06:57:17
@@ -125,6 +125,10 @@
This method causes the receiver to stop writing captured samples to the current output file returned by outputFileURL, but leaves the file open so that samples can be written to it in the future, when resumeRecording is called. This allows clients to record multiple media segments that are not contiguous in time to a single file.
On macOS, if this method is called within the captureOutput:didOutputSampleBuffer:fromConnection: delegate method, the last samples written to the current file are guaranteed to be those that were output immediately before those in the sample buffer passed to that method.
+
+ A recording can be stopped as normal, even when it's paused.
+
+ A format or device change will result in the recording being stopped, even when it's paused.
*/
- (void)pauseRecording API_UNAVAILABLE(ios, tvos, visionos);
@@ -239,7 +243,7 @@
Clients should not assume that this method will be called on a specific thread, and should also try to make this method as efficient as possible.
*/
-- (void)captureOutput:(AVCaptureFileOutput *)output didPauseRecordingToOutputFileAtURL:(NSURL *)fileURL fromConnections:(NSArray<AVCaptureConnection *> *)connections API_UNAVAILABLE(ios, macCatalyst, watchos, tvos, visionos);
+- (void)captureOutput:(AVCaptureFileOutput *)output didPauseRecordingToOutputFileAtURL:(NSURL *)fileURL fromConnections:(NSArray<AVCaptureConnection *> *)connections API_UNAVAILABLE(ios, tvos, visionos);
/*!
@method captureOutput:didResumeRecordingToOutputFileAtURL:fromConnections:
@@ -258,7 +262,7 @@
Clients should not assume that this method will be called on a specific thread, and should also try to make this method as efficient as possible.
*/
-- (void)captureOutput:(AVCaptureFileOutput *)output didResumeRecordingToOutputFileAtURL:(NSURL *)fileURL fromConnections:(NSArray<AVCaptureConnection *> *)connections API_UNAVAILABLE(ios, macCatalyst, watchos, tvos, visionos);
+- (void)captureOutput:(AVCaptureFileOutput *)output didResumeRecordingToOutputFileAtURL:(NSURL *)fileURL fromConnections:(NSArray<AVCaptureConnection *> *)connections API_UNAVAILABLE(ios, tvos, visionos);
/*!
@method captureOutput:willFinishRecordingToOutputFileAtURL:fromConnections:error:
@@ -541,6 +545,23 @@
By default, this property is set to AVCapturePrimaryConstituentDeviceRestrictedSwitchingBehaviorCondition{VideoZoomChanged | FocusModeChanged | ExposureModeChanged}. This property is key-value observable.
*/
@property(nonatomic, readonly) AVCapturePrimaryConstituentDeviceRestrictedSwitchingBehaviorConditions primaryConstituentDeviceRestrictedSwitchingBehaviorConditionsForRecording API_AVAILABLE(macos(12.0), ios(15.0), macCatalyst(15.0), tvos(17.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+
+/*!
+ @property spatialVideoCaptureSupported
+ @abstract
+ Returns whether or not capturing spatial video to a file is supported.
+ */
+@property(nonatomic, readonly, getter=isSpatialVideoCaptureSupported) BOOL spatialVideoCaptureSupported API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+
+/*!
+ @property spatialVideoCaptureEnabled
+ @abstract
+ Enable or disable capturing spatial video to a file.
+
+ @discussion
+ This property enables capturing spatial video to a file. By default, this property is set to NO. Check spatialVideoCaptureSupported before setting this property, as setting to YES will throw an exception if the feature is not supported.
+ */
+@property(nonatomic, getter=isSpatialVideoCaptureEnabled) BOOL spatialVideoCaptureEnabled API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureInput.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureInput.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureInput.h 2024-04-08 15:36:18
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureInput.h 2024-05-31 07:04:25
@@ -4,7 +4,7 @@
Framework: AVFoundation
- Copyright 2010-2022 Apple Inc. All rights reserved.
+ Copyright 2010-2024 Apple Inc. All rights reserved.
*/
#import <AVFoundation/AVBase.h>
@@ -63,7 +63,7 @@
@discussion
The notification object is the AVCaptureInputPort instance whose format description changed.
*/
-AVF_EXPORT NSString *const AVCaptureInputPortFormatDescriptionDidChangeNotification API_AVAILABLE(macos(10.7), ios(4.0), macCatalyst(14.0), tvos(17.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSNotificationName const AVCaptureInputPortFormatDescriptionDidChangeNotification NS_SWIFT_NAME(AVCaptureInputPort.formatDescriptionDidChangeNotification) API_AVAILABLE(macos(10.7), ios(4.0), macCatalyst(14.0), tvos(17.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
#pragma mark - AVCaptureInputPort
@@ -280,6 +280,50 @@
When a device input is added to a session, this property reverts back to the default of kCMTimeInvalid (no override).
*/
@property(nonatomic) CMTime videoMinFrameDurationOverride API_AVAILABLE(ios(13.0), macCatalyst(14.0), tvos(17.0)) API_UNAVAILABLE(macos, visionos) API_UNAVAILABLE(watchos);
+
+/*!
+ @enum AVCaptureMultichannelAudioMode
+ @abstract
+ Constants indicating the modes of multichannel audio.
+
+ @constant AVCaptureMultichannelAudioModeNone
+ Indicates that no multichannel audio should be used.
+ @constant AVCaptureMultichannelAudioModeStereo
+ Indicates that the audio should be recorded using stereo.
+ */
+typedef NS_ENUM(NSInteger, AVCaptureMultichannelAudioMode) {
+ AVCaptureMultichannelAudioModeNone = 0,
+ AVCaptureMultichannelAudioModeStereo = 1,
+} API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(watchos, visionos);
+
+/*!
+ @method isMultichannelAudioModeSupported:
+ @abstract
+ Returns whether the receiver supports the given multichannel audio mode.
+
+ @param multichannelAudioMode
+ An AVCaptureMultichannelAudioMode to be checked.
+ @result
+ YES if the receiver supports the given multichannel audio mode, NO otherwise.
+
+ @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.
+ */
+@property(nonatomic) AVCaptureMultichannelAudioMode multichannelAudioMode API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(watchos, visionos);
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureMetadataOutput.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureMetadataOutput.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureMetadataOutput.h 2024-04-19 08:10:12
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureMetadataOutput.h 2024-05-31 06:57:18
@@ -51,7 +51,7 @@
Clients that need to minimize the chances of metadata being dropped should specify a queue on which a sufficiently small amount of processing is performed along with receiving metadata objects.
- A serial dispatch queue must be used to guarantee that metadata objects will be delivered in order. The objectsCallbackQueue parameter may not be NULL, except when setting the objectsDelegate to nil.
+ A serial dispatch queue must be used to guarantee that metadata objects will be delivered in order. The objectsCallbackQueue parameter may not be NULL, except when setting the objectsDelegate to nil otherwise -setMetadataObjectsDelegate:queue: throws an NSInvalidArgumentException.
*/
- (void)setMetadataObjectsDelegate:(nullable id<AVCaptureMetadataOutputObjectsDelegate>)objectsDelegate queue:(nullable dispatch_queue_t)objectsCallbackQueue;
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h 2024-04-19 08:10:12
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h 2024-05-31 06:48:14
@@ -111,6 +111,7 @@
- For auto exposure brackets, exposureTargetBias value must be within the source device's minExposureTargetBias and maxExposureTargetBias values.
Deferred Photo Delivery rules:
- If the receiver's autoDeferredPhotoDeliveryEnabled is YES, your delegate must respond to -captureOutput:didFinishCapturingDeferredPhotoProxy:error:.
+ - The maxPhotoDimensions setting for 24MP (5712, 4284), when supported, is only serviced as 24MP via deferred photo delivery.
Color space rules:
- Photo capture is not supported when AVCaptureDevice has selected AVCaptureColorSpace_AppleLog as color space.
*/
@@ -508,10 +509,11 @@
/*!
@property maxPhotoDimensions
@abstract
- Indicates the maximum resolution of the requested photo.
+ Indicates the maximum resolution of the requested photo.
@discussion
- Set this property to enable requesting of images up to as large as the specified dimensions. Images returned by AVCapturePhotoOutput may be smaller than these dimensions but will never be larger. Once set, images can be requested with any valid maximum photo dimensions by setting AVCapturePhotoSettings.maxPhotoDimensions on a per photo basis. The dimensions set must match one of the dimensions returned by AVCaptureDeviceFormat.supportedMaxPhotoDimensions for the current active format. Changing this property may trigger a lengthy reconfiguration of the capture render pipeline so it is recommended that this is set before calling -[AVCaptureSession startRunning].
+ Set this property to enable requesting of images up to as large as the specified dimensions. Images returned by AVCapturePhotoOutput may be smaller than these dimensions but will never be larger. Once set, images can be requested with any valid maximum photo dimensions by setting AVCapturePhotoSettings.maxPhotoDimensions on a per photo basis. The dimensions set must match one of the dimensions returned by AVCaptureDeviceFormat.supportedMaxPhotoDimensions for the current active format. Changing this property may trigger a lengthy reconfiguration of the capture render pipeline so it is recommended that this is set before calling -[AVCaptureSession startRunning].
+ Note: When supported, the 24MP setting (5712, 4284) is only serviced as 24MP when opted-in to autoDeferredPhotoDeliveryEnabled.
*/
@property(nonatomic) CMVideoDimensions maxPhotoDimensions API_AVAILABLE(ios(16.0), macos(13.0), macCatalyst(16.0), tvos(17.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
@@ -723,6 +725,42 @@
*/
@property(nonatomic, readonly) AVCapturePhotoOutputCaptureReadiness captureReadiness API_AVAILABLE(ios(17.0), macos(14.0), macCatalyst(17.0), tvos(17.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+/*!
+ @property constantColorSupported
+ @abstract
+ A BOOL value specifying whether constant color capture is supported.
+
+ @discussion
+ An object's color in a photograph is affected by the light sources illuminating the scene, so the color of the same object photographed in warm light might look markedly different than in colder light. In some use cases, such ambient light induced color variation is undesirable, and the user may prefer an estimate of what these materials would look like under a standard light such as daylight (D65), regardless of the lighting conditions at the time the photograph was taken. Some devices are capable of producing such constant color photos.
+
+ Constant color captures require the flash to be fired and may require pre-flash sequence to determine the correct focus and exposure, therefore it might take several seconds to acquire a constant color photo. Due to this flash requirement, a constant color capture can only be taken with AVCaptureFlashModeAuto or AVCaptureFlashModeOn as the flash mode, otherwise an exception is thrown.
+
+ Constant color can only be achieved when the flash has a discernible effect on the scene so it may not perform well in bright conditions such as direct sunlight. Use the constantColorConfidenceMap property to examine the confidence level, and therefore the usefulness, of each region of a constant color photo.
+
+ This property returns YES if the session's current configuration allows photos to be captured with constant color. When switching cameras or formats this property may change. When this property changes from YES to NO, constantColorEnabled also reverts to NO. If you've previously opted in for constant color and then change configurations, you may need to set constantColorEnabled = YES again. This property is key-value observable.
+ */
+@property(nonatomic, readonly, getter=isConstantColorSupported) BOOL constantColorSupported API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+
+/*!
+ @property constantColorEnabled
+ @abstract
+ A BOOL value specifying whether the photo render pipeline is set up to perform constant color captures.
+
+ @discussion
+ Default is NO. Set to YES to enable support for taking constant color photos. This property may only be set to YES if constantColorSupported is YES. Enabling constant color requires a lengthy reconfiguration of the capture render pipeline, so if you intend to capture constant color photos, you should set this property to YES before calling -[AVCaptureSession startRunning] or within -[AVCaptureSession beginConfiguration] and -[AVCaptureSession commitConfiguration] while running.
+ */
+@property(nonatomic, getter=isConstantColorEnabled) BOOL constantColorEnabled API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+
+/*!
+ @property shutterSoundSuppressionSupported
+ @abstract
+ Specifies whether suppressing the shutter sound is supported.
+
+ @discussion
+ On iOS, this property returns NO in jurisdictions where shutter sound production cannot be disabled. On all other platforms, it always returns NO.
+ */
+@property(nonatomic, readonly, getter=isShutterSoundSuppressionSupported) BOOL shutterSoundSuppressionSupported API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+
@end
@@ -1550,6 +1588,36 @@
*/
@property(nonatomic, getter=isAutoContentAwareDistortionCorrectionEnabled) BOOL autoContentAwareDistortionCorrectionEnabled API_AVAILABLE(ios(14.1), macCatalyst(14.1), tvos(17.0)) API_UNAVAILABLE(macos, visionos) API_UNAVAILABLE(watchos);
+/*!
+ @property constantColorEnabled
+ @abstract
+ Specifies whether the photo will be captured with constant color.
+
+ @discussion
+ Default is NO. Set to YES if you wish to capture a constant color photo. Throws an exception if -[AVCapturePhotoOutput constantColorEnabled] is not set to YES.
+ */
+@property(nonatomic, getter=isConstantColorEnabled) BOOL constantColorEnabled API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+
+/*!
+ @property constantColorFallbackPhotoDeliveryEnabled
+ @abstract
+ Specifies whether a fallback photo is delivered when taking a constant color capture.
+
+ @discussion
+ Default is NO. Set to YES if you wish to receive a fallback photo that can be used in case the main constant color photo's confidence level is too low for your use case.
+ */
+@property(nonatomic, getter=isConstantColorFallbackPhotoDeliveryEnabled) BOOL constantColorFallbackPhotoDeliveryEnabled API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+
+/*!
+ @property shutterSoundSuppressionEnabled
+ @abstract
+ Specifies whether the built-in shutter sound should be suppressed when capturing a photo with these settings.
+
+ @discussion
+ Default is NO. Set to YES if you wish to suppress AVCapturePhotoOutput's built-in shutter sound for this request. AVCapturePhotoOutput throws an NSInvalidArgumentException in `-capturePhotoWithSettings:` if its `shutterSoundSuppressionSupported` property returns NO.
+ */
+@property(nonatomic, getter=isShutterSoundSuppressionEnabled) BOOL shutterSoundSuppressionEnabled API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+
@end
@@ -1989,6 +2057,37 @@
When taking a virtual device constituent photo capture, you may query this property to find out the source type of the photo. For instance, on a DualCamera, resulting photos will be of sourceDeviceType AVCaptureDeviceTypeBuiltInWideCamera, or AVCaptureDeviceTypeBuiltInTelephotoCamera. For all other types of capture, the source device type is equal to the -[AVCaptureDevice deviceType] of the AVCaptureDevice to which the AVCapturePhotoOutput is connected. Returns nil if the source of the photo is not an AVCaptureDevice.
*/
@property(nullable, readonly) AVCaptureDeviceType sourceDeviceType API_UNAVAILABLE(macos);
+
+/*!
+ @property constantColorConfidenceMap
+ @abstract
+ Returns a pixel buffer with the same aspect ratio as the constant color photo, where each pixel value (unsigned 8-bit integer) indicates how fully the constant color effect has been achieved in the corresponding region of the constant color photo -- 255 means full confidence, 0 means zero confidence.
+
+ @discussion
+ NULL is returned for any non constant color photos.
+ */
+@property(nullable, readonly) CVPixelBufferRef constantColorConfidenceMap API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+
+/*!
+ @property constantColorCenterWeightedMeanConfidenceLevel
+ @abstract
+ Returns a score summarizing the overall confidence level of a constant color photo -- 1.0 means full confidence, 0.0 means zero confidence.
+
+ @discussion
+ Default is 0.0.
+
+ In most use cases (document scanning for example), the central region of the photo is considered more important than the peripherals, therefore the confidence level of the central pixels are weighted more heavily than pixels on the edges of the photo.
+
+ Use constantColorConfidenceMap for more use case specific analyses of the confidence level.
+ */
+@property(readonly) float constantColorCenterWeightedMeanConfidenceLevel API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+
+/*!
+ @property constantColorFallbackPhoto
+ @abstract
+ Indicates whether this photo is a fallback photo for a constant color capture.
+ */
+@property(readonly, getter=isConstantColorFallbackPhoto) BOOL constantColorFallbackPhoto API_AVAILABLE(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureSession.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureSession.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureSession.h 2024-04-19 08:23:49
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureSession.h 2024-05-31 06:39:08
@@ -4,7 +4,7 @@
Framework: AVFoundation
- Copyright 2010-2023 Apple Inc. All rights reserved.
+ Copyright 2010-2024 Apple Inc. All rights reserved.
*/
#import <AVFoundation/AVBase.h>
@@ -23,7 +23,7 @@
@discussion
The notification object is the AVCaptureSession instance that encountered a runtime error. The userInfo dictionary contains an NSError for the key AVCaptureSessionErrorKey.
*/
-AVF_EXPORT NSString *const AVCaptureSessionRuntimeErrorNotification API_AVAILABLE(macos(10.7), ios(4.0), macCatalyst(14.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSNotificationName const AVCaptureSessionRuntimeErrorNotification NS_SWIFT_NAME(AVCaptureSession.runtimeErrorNotification) API_AVAILABLE(macos(10.7), ios(4.0), macCatalyst(14.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@constant AVCaptureSessionErrorKey
@@ -43,7 +43,7 @@
@discussion
Clients may observe the AVCaptureSessionDidStartRunningNotification to know when an instance of AVCaptureSession starts running.
*/
-AVF_EXPORT NSString *const AVCaptureSessionDidStartRunningNotification API_AVAILABLE(macos(10.7), ios(4.0), macCatalyst(14.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSNotificationName const AVCaptureSessionDidStartRunningNotification NS_SWIFT_NAME(AVCaptureSession.didStartRunningNotification) API_AVAILABLE(macos(10.7), ios(4.0), macCatalyst(14.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@constant AVCaptureSessionDidStopRunningNotification
@@ -53,7 +53,7 @@
@discussion
Clients may observe the AVCaptureSessionDidStopRunningNotification to know when an instance of AVCaptureSession stops running. An AVCaptureSession instance may stop running automatically due to external system conditions, such as the device going to sleep, or being locked by a user.
*/
-AVF_EXPORT NSString *const AVCaptureSessionDidStopRunningNotification API_AVAILABLE(macos(10.7), ios(4.0), macCatalyst(14.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSNotificationName const AVCaptureSessionDidStopRunningNotification NS_SWIFT_NAME(AVCaptureSession.didStopRunningNotification) API_AVAILABLE(macos(10.7), ios(4.0), macCatalyst(14.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@constant AVCaptureSessionWasInterruptedNotification
@@ -65,7 +65,7 @@
Beginning in iOS 9.0, the AVCaptureSessionWasInterruptedNotification userInfo dictionary contains an AVCaptureSessionInterruptionReasonKey indicating the reason for the interruption.
*/
-AVF_EXPORT NSString *const AVCaptureSessionWasInterruptedNotification API_AVAILABLE(macos(10.14), ios(4.0), macCatalyst(14.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSNotificationName const AVCaptureSessionWasInterruptedNotification NS_SWIFT_NAME(AVCaptureSession.wasInterruptedNotification) API_AVAILABLE(macos(10.14), ios(4.0), macCatalyst(14.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@@ -121,7 +121,7 @@
@discussion
Clients may observe the AVCaptureSessionInterruptionEndedNotification to know when an instance of AVCaptureSession ceases to be interrupted, for example, when a phone call ends, and hardware resources needed to run the session are again available. When appropriate, the AVCaptureSession instance that was previously stopped in response to an interruption will automatically restart once the interruption ends.
*/
-AVF_EXPORT NSString *const AVCaptureSessionInterruptionEndedNotification API_AVAILABLE(macos(10.14), ios(4.0), macCatalyst(14.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT NSNotificationName const AVCaptureSessionInterruptionEndedNotification NS_SWIFT_NAME(AVCaptureSession.interruptionEndedNotification) API_AVAILABLE(macos(10.14), ios(4.0), macCatalyst(14.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@enum AVCaptureVideoOrientation
@@ -380,7 +380,7 @@
When paired with commitConfiguration, allows a client to batch multiple configuration operations on a running session into atomic updates.
@discussion
- -beginConfiguration / -commitConfiguration are AVCaptureSession's mechanism for batching multiple configuration operations on a running session into atomic updates. After calling [session beginConfiguration], clients may add or remove outputs, alter the sessionPreset, or configure individual AVCaptureInput or Output properties. All changes will be pended until the client calls [session commitConfiguration], at which time they will be applied together. -beginConfiguration / -commitConfiguration pairs may be nested, and will only be applied when the outermost commit is invoked.
+ -beginConfiguration / -commitConfiguration are AVCaptureSession's mechanism for batching multiple configuration operations on a running session into atomic updates. After calling [session beginConfiguration], clients may add or remove outputs, alter the sessionPreset, or configure individual AVCaptureInput or Output properties. All changes will be pended until the client calls [session commitConfiguration], at which time they will be applied together. -beginConfiguration / -commitConfiguration pairs may be nested, and will only be applied when the outermost commit is invoked. If you've called -beginConfiguration, you must call -commitConfiguration before invoking -startRunning or -stopRunning, otherwise an NSGenericException is thrown.
*/
- (void)beginConfiguration;
@@ -390,7 +390,7 @@
When preceded by beginConfiguration, allows a client to batch multiple configuration operations on a running session into atomic updates.
@discussion
- -beginConfiguration / -commitConfiguration are AVCaptureSession's mechanism for batching multiple configuration operations on a running session into atomic updates. After calling [session beginConfiguration], clients may add or remove outputs, alter the sessionPreset, or configure individual AVCaptureInput or Output properties. All changes will be pended until the client calls [session commitConfiguration], at which time they will be applied together. -beginConfiguration / -commitConfiguration pairs may be nested, and will only be applied when the outermost commit is invoked.
+ -beginConfiguration / -commitConfiguration are AVCaptureSession's mechanism for batching multiple configuration operations on a running session into atomic updates. After calling [session beginConfiguration], clients may add or remove outputs, alter the sessionPreset, or configure individual AVCaptureInput or Output properties. All changes will be pended until the client calls [session commitConfiguration], at which time they will be applied together. -beginConfiguration / -commitConfiguration pairs may be nested, and will only be applied when the outermost commit is invoked. If you've called -beginConfiguration, you must call -commitConfiguration before invoking -startRunning or -stopRunning, otherwise an NSGenericException is thrown.
*/
- (void)commitConfiguration;
@@ -422,10 +422,12 @@
@discussion
This property can be used to determine whether multitaskingCameraAccessEnabled may be set to YES. When this property changes from YES to NO, multitaskingCameraAccessEnabled also reverts to NO.
- This property returns true on iPads that support Stage Manager with an extended display.
+ Prior to iOS 18, this property returns YES on iPads that support Stage Manager with an extended display. In applications linked on or after iOS 18, this property returns YES for video conferencing applications (apps that use "voip" as one of their UIBackgroundModes).
- This property returns true on Apple TV.
+ This property also returns YES for iOS applications that have the com.apple.developer.avfoundation.multitasking-camera-access entitlement.
+ This property returns YES on Apple TV.
+
This property is key-value observable.
*/
@property(nonatomic, readonly, getter=isMultitaskingCameraAccessSupported) BOOL multitaskingCameraAccessSupported API_AVAILABLE(ios(16.0), tvos(17.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(macos, macCatalyst, watchos);
@@ -469,6 +471,16 @@
@property(nonatomic) BOOL automaticallyConfiguresApplicationAudioSession API_AVAILABLE(ios(7.0), macCatalyst(14.0), tvos(17.0)) API_UNAVAILABLE(macos, visionos);
/*!
+ @property configuresApplicationAudioSessionToMixWithOthers
+ @abstract
+ Indicates whether the receiver should configure the application's audio session to mix with others.
+
+ @discussion
+ The value of this property is a BOOL indicating whether the receiver should configure the application's audio session to mix with, instead of interrupting, any ongoing audio sessions. It has no effect when usesApplicationAudioSession is set to NO. It also has no effect on Live Photo movie complement capture (where music is always mixed with). The default value is NO.
+ */
+@property(nonatomic) BOOL configuresApplicationAudioSessionToMixWithOthers API_AVAILABLE(ios(18.0), macCatalyst(18.0), tvos(18.0)) API_UNAVAILABLE(macos, visionos);
+
+/*!
@property automaticallyConfiguresCaptureDeviceForWideColor
@abstract
Indicates whether the receiver automatically configures its video device's activeFormat and activeColorSpace properties, preferring wide color for photos.
@@ -484,7 +496,7 @@
Starts an AVCaptureSession instance running.
@discussion
- Clients invoke -startRunning to start the flow of data from inputs to outputs connected to the AVCaptureSession instance. This call blocks until the session object has completely started up or failed. A failure to start running is reported through the AVCaptureSessionRuntimeErrorNotification mechanism.
+ Clients invoke -startRunning to start the flow of data from inputs to outputs connected to the AVCaptureSession instance. This call blocks until the session object has completely started up or failed. A failure to start running is reported through the AVCaptureSessionRuntimeErrorNotification mechanism. If you've called -beginConfiguration, you must call -commitConfiguration before invoking -startRunning, otherwise an NSGenericException is thrown.
*/
- (void)startRunning;
@@ -494,7 +506,7 @@
Stops an AVCaptureSession instance that is currently running.
@discussion
- Clients invoke -stopRunning to stop the flow of data from inputs to outputs connected to the AVCaptureSession instance. This call blocks until the session object has completely stopped.
+ Clients invoke -stopRunning to stop the flow of data from inputs to outputs connected to the AVCaptureSession instance. This call blocks until the session object has completely stopped. -stopRunning may not be called while the session is being configured. If you've called -beginConfiguration, you must call -commitConfiguration before invoking -stopRunning, otherwise an NSGenericException is thrown.
*/
- (void)stopRunning;
@@ -535,10 +547,11 @@
The value of this property is a float from 0.0 => 1.0 indicating how much of the session's available hardware is in use as a percentage, given the currently connected inputs and outputs and the features for which you've opted in. When your hardwareCost is greater than 1.0, the capture session cannot run your desired configuration due to hardware constraints, so you receive an AVCaptureSessionRuntimeErrorNotification when attempting to start it running. Default value is 0.
Contributors to hardwareCost include:
- - Whether the source devices' active formats use the full sensor (4:3) or a crop (16:9). Cropped formats require lower hardware bandwidth, and therefore lower the cost.
- - The max frame rate supported by the source devices' active formats. The higher the max frame rate, the higher the cost.
- - Whether the source devices' active formats are binned or not. Binned formats require substantially less hardware bandwidth, and therefore result in a lower cost.
+ - Whether the source device's active format uses the full sensor (4:3) or a crop (16:9). Cropped formats require lower hardware bandwidth, and therefore lower the cost.
+ - The max frame rate supported by the source device's active format. The higher the max frame rate, the higher the cost.
+ - Whether the source device's active format is binned or not. Binned formats require substantially less hardware bandwidth, and therefore result in a lower cost.
- The number of sources configured to deliver streaming disparity / depth via AVCaptureDepthDataOutput. The higher the number of cameras configured to produce depth, the higher the cost.
+ For AVCaptureMultiCamSessions, all of the source devices' active formats contribute to hardwareCost.
In order to reduce hardwareCost, consider picking a sensor-cropped activeFormat, or a binned format. You may also use AVCaptureDeviceInput's videoMinFrameDurationOverride property to artificially limit the max frame rate (which is the reciprocal of the min frame duration) of a source device to a lower value. By doing so, you only pay the hardware cost for the max frame rate you intend to use.
AVCaptureMultiCamSessions always computes this hardwareCost. AVCaptureSessions only computes a non-zero hardwareCost when multiple AVCaptureVideoDataOutputs or an AVCaptureMovieFileOutput and one or more AVCaptureVideoDataOutputs are added to the session.
@@ -802,7 +815,7 @@
Indicates whether the video flowing through the connection should be mirrored about its vertical axis.
@discussion
- This property is only applicable to AVCaptureConnection instances involving video. if -isVideoMirroringSupported returns YES, videoMirrored may be set to flip the video about its vertical axis and produce a mirror-image effect.
+ This property is only applicable to AVCaptureConnection instances involving video. if -isVideoMirroringSupported returns YES, videoMirrored may be set to flip the video about its vertical axis and produce a mirror-image effect. This property may not be set unless -isVideoMirroringSupported returns YES, otherwise a NSInvalidArgumentException is thrown. This property may not be set if -automaticallyAdjustsVideoMirroring returns YES, otherwise an NSInvalidArgumentException is thrown.
*/
@property(nonatomic, getter=isVideoMirrored) BOOL videoMirrored;
@@ -838,6 +851,8 @@
@discussion
This property is only applicable to AVCaptureConnection instances involving video or depth. -setVideoRotationAngle: throws an NSInvalidArgumentException if set to an unsupported value (see -isVideoRotationAngleSupported:). Note that setting videoRotationAngle does not necessarily result in physical rotation of video buffers. For instance, a video connection to an AVCaptureMovieFileOutput handles orientation using a Quicktime track matrix. In the AVCapturePhotoOutput, orientation is handled using Exif tags. And the AVCaptureVideoPreviewLayer applies transforms to its contents to perform rotations. However, the AVCaptureVideoDataOutput and AVCaptureDepthDataOutput do output physically rotated video buffers. Setting a video rotation angle for an output that does physically rotate buffers requires a lengthy configuration of the capture render pipeline and should be done before calling -[AVCaptureSession startRunning].
+
+ Starting with the Spring 2024 iPad line, the default value of videoRotationAngle is 180 degrees for video data on Front Camera as compared to 0 degrees on previous devices. So clients using AVCaptureVideoDataOutput and AVCaptureDepthDataOutput should set videoRotationAngle to 0 to avoid the physical buffer rotation described above. And clients rotating video data by themselves must account for the default value of videoRotationAngle when applying angles (videoRotationAngleForHorizonLevelPreview, videoRotationAngleForHorizonLevelCapture) from AVCaptureDeviceRotationCoordinator. Note that this change in default value is currently limited to these iPads, however it is recommended that clients rotating video data themselves incorporate the default rotation value into their workflows for all devices.
*/
@property(nonatomic) CGFloat videoRotationAngle API_AVAILABLE(macos(14.0), ios(17.0), macCatalyst(17.0), tvos(17.0)) API_UNAVAILABLE(visionos);
@@ -857,7 +872,7 @@
Indicates whether the video flowing through the connection should be rotated to a given orientation.
@discussion
- This property is deprecated. Use -videoRotationAngle instead.
+ This property is deprecated. Use -videoRotationAngle instead. This property may only be set if -isVideoOrientationSupported returns YES, otherwise an NSInvalidArgumentException is thrown.
*/
@property(nonatomic) AVCaptureVideoOrientation videoOrientation API_DEPRECATED("Use -videoRotationAngle instead", macos(10.7, 14.0), ios(4.0, 17.0), macCatalyst(14.0, 17.0)) API_UNAVAILABLE(tvos, visionos);
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureVideoDataOutput.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureVideoDataOutput.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureVideoDataOutput.h 2024-04-18 08:26:49
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureVideoDataOutput.h 2024-05-31 07:07:13
@@ -52,7 +52,7 @@
Clients that need to minimize the chances of frames being dropped should specify a queue on which a sufficiently small amount of processing is being done outside of receiving sample buffers. However, if such clients migrate extra processing to another queue, they are responsible for ensuring that memory usage does not grow without bound from frames that have not been processed.
- A serial dispatch queue must be used to guarantee that video frames will be delivered in order. The sampleBufferCallbackQueue parameter may not be NULL, except when setting the sampleBufferDelegate to nil.
+ A serial dispatch queue must be used to guarantee that video frames will be delivered in order. The sampleBufferCallbackQueue parameter may not be NULL, except when setting the sampleBufferDelegate to nil otherwise -setSampleBufferDelegate:queue: throws an NSInvalidArgumentException.
*/
- (void)setSampleBufferDelegate:(nullable id<AVCaptureVideoDataOutputSampleBufferDelegate>)sampleBufferDelegate queue:(nullable dispatch_queue_t)sampleBufferCallbackQueue;
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVComposition.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVComposition.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVComposition.h 2024-04-08 16:42:02
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVComposition.h 2024-05-30 05:30:50
@@ -56,7 +56,7 @@
@class AVCompositionInternal;
-API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0))
+API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0))
@interface AVComposition : AVAsset <NSMutableCopying>
{
@private
@@ -82,7 +82,7 @@
AVCompositions create AVURLAssets internally for URLs specified by AVCompositionTrackSegments of AVCompositionTracks, as needed, whenever AVCompositionTrackSegments were originally added to a track via -[AVMutableCompositionTrack setSegments:] rather than by inserting timeranges of already existing AVAssets or AVAssetTracks.
The value of URLAssetInitializationOptions can be specified at the time an AVMutableComposition is created via +compositionWithURLAssetInitializationOptions:.
*/
-@property (nonatomic, readonly, copy) NSDictionary<NSString *, id> *URLAssetInitializationOptions API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0));
+@property (nonatomic, readonly, copy) NSDictionary<NSString *, id> *URLAssetInitializationOptions API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0), visionos(1.0));
@end
@@ -107,7 +107,7 @@
@param completionHandler
A block that is called when the loading is finished, with either the loaded track (which may be nil if no track of the specified trackID is available) or an error.
*/
-- (void)loadTrackWithTrackID:(CMPersistentTrackID)trackID completionHandler:(void (^)(AVCompositionTrack * _Nullable_result, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+- (void)loadTrackWithTrackID:(CMPersistentTrackID)trackID completionHandler:(void (^ NS_SWIFT_SENDABLE)(AVCompositionTrack * _Nullable_result, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
/*!
@method tracksWithMediaType:
@@ -128,7 +128,7 @@
@param completionHandler
A block that is called when the loading is finished, with either the loaded tracks (which may be empty if no tracks of the specified media type are available) or an error.
*/
-- (void)loadTracksWithMediaType:(AVMediaType)mediaType completionHandler:(void (^)(NSArray<AVCompositionTrack *> * _Nullable, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+- (void)loadTracksWithMediaType:(AVMediaType)mediaType completionHandler:(void (^ NS_SWIFT_SENDABLE)(NSArray<AVCompositionTrack *> * _Nullable, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
/*!
@method tracksWithMediaCharacteristic:
@@ -149,14 +149,15 @@
@param completionHandler
A block that is called when the loading is finished, with either the loaded tracks (which may be empty if no tracks with the specified characteristic are available) or an error.
*/
-- (void)loadTracksWithMediaCharacteristic:(AVMediaCharacteristic)mediaCharacteristic completionHandler:(void (^)(NSArray<AVCompositionTrack *> * _Nullable, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+- (void)loadTracksWithMediaCharacteristic:(AVMediaCharacteristic)mediaCharacteristic completionHandler:(void (^ NS_SWIFT_SENDABLE)(NSArray<AVCompositionTrack *> * _Nullable, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
@end
@class AVMutableCompositionInternal;
-API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0))
+NS_SWIFT_NONSENDABLE
+API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0))
@interface AVMutableComposition : AVComposition
{
@private
@@ -191,7 +192,7 @@
@discussion
AVMutableCompositions create AVURLAssets internally for URLs specified by AVCompositionTrackSegments of AVMutableCompositionTracks, as needed, whenever AVCompositionTrackSegments are added to tracks via -[AVMutableCompositionTrack setSegments:] rather than by inserting timeranges of already existing AVAssets or AVAssetTracks.
*/
-+ (instancetype)compositionWithURLAssetInitializationOptions:(nullable NSDictionary<NSString *, id> *)URLAssetInitializationOptions API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0));
++ (instancetype)compositionWithURLAssetInitializationOptions:(nullable NSDictionary<NSString *, id> *)URLAssetInitializationOptions API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0), visionos(1.0));
@end
@@ -215,9 +216,9 @@
This method may add new tracks to ensure that all tracks of the asset are represented in the inserted timeRange.
Note that the media data for the inserted timeRange will be presented at its natural duration and rate. It can be scaled to a different duration and presented at a different rate via -scaleTimeRange:toDuration:.
Existing content at the specified startTime will be pushed out by the duration of timeRange.
- Note that metadata will not be automatically copied.
+ Note that this operation only inserts one or more track segments into affected AVMutableCompositionTracks; it does not affect the values of other track properties, either to match the corresponding values of tracks in the source asset or for any other purpose.
*/
-- (BOOL)insertTimeRange:(CMTimeRange)timeRange ofAsset:(AVAsset *)asset atTime:(CMTime)startTime error:(NSError * _Nullable * _Nullable)outError API_DEPRECATED_WITH_REPLACEMENT("insertTimeRange:ofAsset:atTime:completionHandler:", macos(10.7, API_TO_BE_DEPRECATED), ios(4.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED), watchos(1.0, API_TO_BE_DEPRECATED)) API_UNAVAILABLE(visionos);
+- (BOOL)insertTimeRange:(CMTimeRange)timeRange ofAsset:(AVAsset *)asset atTime:(CMTime)startTime error:(NSError * _Nullable * _Nullable)outError API_DEPRECATED_WITH_REPLACEMENT("insertTimeRange:ofAsset:atTime:completionHandler:", macos(10.7, 15.0), ios(4.0, 18.0), tvos(9.0, 18.0), watchos(1.0, 11.0)) API_UNAVAILABLE(visionos);
/*!
@method insertTimeRange:ofAsset:atTime:completionHandler:
@@ -235,11 +236,29 @@
This method may add new tracks to ensure that all tracks of the asset are represented in the inserted timeRange.
Note that the media data for the inserted timeRange will be presented at its natural duration and rate. It can be scaled to a different duration and presented at a different rate via -scaleTimeRange:toDuration:.
Existing content at the specified startTime will be pushed out by the duration of timeRange.
- Note that metadata will not be automatically copied.
+ Note that this operation only inserts one or more track segments into affected AVMutableCompositionTracks; it does not affect the values of other track properties, either to match the corresponding values of tracks in the source asset or for any other purpose.
*/
-- (void)insertTimeRange:(CMTimeRange)timeRange ofAsset:(AVAsset *)asset atTime:(CMTime)startTime completionHandler:(void (^)(NSError * _Nullable error))completionHandler API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0));
+- (void)insertTimeRange:(CMTimeRange)timeRange ofAsset:(AVAsset *)asset atTime:(CMTime)startTime completionHandler:(void (^ NS_SWIFT_SENDABLE)(NSError * _Nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("insertTimeRange:ofTracks:atTime:error:", macos(13.0, 15.0), ios(16.0, 18.0), tvos(16.0, 18.0), watchos(9.0, 11.0), visionos(1.0, 2.0));
/*!
+ @method insertTimeRange:ofTracks:atTime:completionHandler:
+ @abstract Inserts all the tracks of a timeRange into a composition.
+ @param timeRange
+ Specifies the timeRange of the asset to be inserted.
+ @param tracks
+ Specifies the tracks that are to be inserted. Only tracks from instances of AVURLAsset and AVComposition are supported (AVComposition starting in macOS 10.10 and iOS 8.0).
+ @param startTime
+ Specifies the time at which the inserted tracks are to be presented by the composition.
+ @discussion
+ You provide a reference to a AVAssetTracks and the timeRange within it that you want to insert. You specify the start time in the destination composition at which the timeRange should be inserted.
+ This method may add new tracks to ensure that all tracks of the asset are represented in the inserted timeRange.
+ Note that the media data for the inserted timeRange will be presented at its natural duration and rate. It can be scaled to a different duration and presented at a different rate via -scaleTimeRange:toDuration:.
+ Existing content at the specified startTime will be pushed out by the duration of timeRange.
+ Note that this operation only inserts one or more track segments into affected AVMutableCompositionTracks; it does not affect the values of other track properties, either to match the corresponding values of tracks in the source asset or for any other purpose.
+*/
+- (BOOL)insertTimeRange:(CMTimeRange)timeRange ofTracks:(NSArray<AVAssetTrack *> *)tracks atTime:(CMTime)startTime error:(NSError * _Nullable * _Nullable)outError API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), watchos(9.0), visionos(2.0));
+
+/*!
@method insertEmptyTimeRange:
@abstract Adds or extends an empty timeRange within all tracks of the composition.
@param timeRange
@@ -340,7 +359,7 @@
@param completionHandler
A block that is called when the loading is finished, with either the loaded track (which may be nil if no track of the specified trackID is available) or an error.
*/
-- (void)loadTrackWithTrackID:(CMPersistentTrackID)trackID completionHandler:(void (^)(AVMutableCompositionTrack * _Nullable_result, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+- (void)loadTrackWithTrackID:(CMPersistentTrackID)trackID completionHandler:(void (^ NS_SWIFT_SENDABLE)(AVMutableCompositionTrack * _Nullable_result, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
/*!
@method tracksWithMediaType:
@@ -361,7 +380,7 @@
@param completionHandler
A block that is called when the loading is finished, with either the loaded tracks (which may be empty if no tracks of the specified media type are available) or an error.
*/
-- (void)loadTracksWithMediaType:(AVMediaType)mediaType completionHandler:(void (^)(NSArray<AVMutableCompositionTrack *> * _Nullable, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+- (void)loadTracksWithMediaType:(AVMediaType)mediaType completionHandler:(void (^ NS_SWIFT_SENDABLE)(NSArray<AVMutableCompositionTrack *> * _Nullable, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
/*!
@method tracksWithMediaCharacteristic:
@@ -382,7 +401,7 @@
@param completionHandler
A block that is called when the loading is finished, with either the loaded tracks (which may be empty if no tracks with the specified characteristic are available) or an error.
*/
-- (void)loadTracksWithMediaCharacteristic:(AVMediaCharacteristic)mediaCharacteristic completionHandler:(void (^)(NSArray<AVMutableCompositionTrack *> * _Nullable, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+- (void)loadTracksWithMediaCharacteristic:(AVMediaCharacteristic)mediaCharacteristic completionHandler:(void (^ NS_SWIFT_SENDABLE)(NSArray<AVMutableCompositionTrack *> * _Nullable, NSError * _Nullable))completionHandler API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
@end
@@ -405,29 +424,29 @@
@property (nonatomic, readonly) float preferredRate;
@property (nonatomic, readonly) float preferredVolume;
@property (nonatomic, readonly) CGAffineTransform preferredTransform;
-@property (nonatomic, readonly) AVDisplayCriteria *preferredDisplayCriteria API_AVAILABLE(tvos(11.2)) API_UNAVAILABLE(ios) API_UNAVAILABLE(macos, watchos);
-@property (nonatomic, readonly) CMTime minimumTimeOffsetFromLive API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0));
+@property (nonatomic, readonly) AVDisplayCriteria *preferredDisplayCriteria API_AVAILABLE(tvos(11.2)) API_UNAVAILABLE(ios, visionos) API_UNAVAILABLE(macos, watchos);
+@property (nonatomic, readonly) CMTime minimumTimeOffsetFromLive API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0), visionos(1.0));
@property (nonatomic, readonly) BOOL providesPreciseDurationAndTiming;
-@property (nonatomic, readonly) NSArray<AVAssetTrackGroup *> *trackGroups API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
-@property (nonatomic, readonly, nullable) AVMetadataItem *creationDate API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0));
+@property (nonatomic, readonly) NSArray<AVAssetTrackGroup *> *trackGroups API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
+@property (nonatomic, readonly, nullable) AVMetadataItem *creationDate API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0), visionos(1.0));
@property (nonatomic, readonly, nullable) NSString *lyrics;
@property (nonatomic, readonly) NSArray<AVMetadataItem *> *commonMetadata;
-@property (nonatomic, readonly) NSArray<AVMetadataItem *> *metadata API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0));
+@property (nonatomic, readonly) NSArray<AVMetadataItem *> *metadata API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0), visionos(1.0));
@property (nonatomic, readonly) NSArray<AVMetadataFormat> *availableMetadataFormats;
-@property (readonly) NSArray<NSLocale *> *availableChapterLocales API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0));
-@property (nonatomic, readonly) NSArray<AVMediaCharacteristic> *availableMediaCharacteristicsWithMediaSelectionOptions API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0));;
-@property (nonatomic, readonly) AVMediaSelection *preferredMediaSelection API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0));
-@property (nonatomic, readonly) NSArray<AVMediaSelection *> *allMediaSelections API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));
-@property (nonatomic, readonly) BOOL hasProtectedContent API_AVAILABLE(macos(10.7), ios(4.2), tvos(9.0)) API_UNAVAILABLE(watchos);
-@property (nonatomic, readonly) BOOL canContainFragments API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0)) API_UNAVAILABLE(watchos);
-@property (nonatomic, readonly) BOOL containsFragments API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0)) API_UNAVAILABLE(watchos);
-@property (nonatomic, readonly) CMTime overallDurationHint API_AVAILABLE(macos(10.12.2), ios(10.2), tvos(10.2), watchos(3.2));
-@property (nonatomic, readonly, getter=isPlayable) BOOL playable API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0));
-@property (nonatomic, readonly, getter=isExportable) BOOL exportable API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0)) API_UNAVAILABLE(watchos);
-@property (nonatomic, readonly, getter=isReadable) BOOL readable API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0)) API_UNAVAILABLE(watchos);
-@property (nonatomic, readonly, getter=isComposable) BOOL composable API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0));
-@property (nonatomic, readonly, getter=isCompatibleWithSavedPhotosAlbum) BOOL compatibleWithSavedPhotosAlbum API_AVAILABLE(ios(5.0), tvos(9.0)) API_UNAVAILABLE(macos, watchos);
-@property (nonatomic, readonly, getter=isCompatibleWithAirPlayVideo) BOOL compatibleWithAirPlayVideo API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (readonly) NSArray<NSLocale *> *availableChapterLocales API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0), visionos(1.0));
+@property (nonatomic, readonly) NSArray<AVMediaCharacteristic> *availableMediaCharacteristicsWithMediaSelectionOptions API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0), visionos(1.0));;
+@property (nonatomic, readonly) AVMediaSelection *preferredMediaSelection API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0), visionos(1.0));
+@property (nonatomic, readonly) NSArray<AVMediaSelection *> *allMediaSelections API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0), visionos(1.0));
+@property (nonatomic, readonly) BOOL hasProtectedContent API_AVAILABLE(macos(10.7), ios(4.2), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly) BOOL canContainFragments API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly) BOOL containsFragments API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly) CMTime overallDurationHint API_AVAILABLE(macos(10.12.2), ios(10.2), tvos(10.2), watchos(3.2), visionos(1.0));
+@property (nonatomic, readonly, getter=isPlayable) BOOL playable API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0), visionos(1.0));
+@property (nonatomic, readonly, getter=isExportable) BOOL exportable API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly, getter=isReadable) BOOL readable API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly, getter=isComposable) BOOL composable API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0), visionos(1.0));
+@property (nonatomic, readonly, getter=isCompatibleWithSavedPhotosAlbum) BOOL compatibleWithSavedPhotosAlbum API_AVAILABLE(ios(5.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(macos, watchos);
+@property (nonatomic, readonly, getter=isCompatibleWithAirPlayVideo) BOOL compatibleWithAirPlayVideo API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
#endif // __swift__
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCompositionTrack.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCompositionTrack.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCompositionTrack.h 2024-04-17 08:16:26
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCompositionTrack.h 2024-05-30 05:30:48
@@ -29,7 +29,7 @@
@class AVCompositionTrackInternal;
@class AVCompositionTrackSegment;
-API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0))
+API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0))
@interface AVCompositionTrack : AVAssetTrack
{
@private
@@ -60,7 +60,7 @@
@abstract An array of AVCompositionTrackFormatDescriptionReplacement objects indicating original format descriptions and their replacements.
@discussion The value of this property is an array of AVCompositionTrackFormatDescriptionReplacement objects, each of which specifies an original format description together with its replacement format description (as specified by a previous call to -replaceFormatDescription:withFormatDescription:). Only format descriptions that are to be replaced will occur as the originalFormatDescription elements in the AVCompositionTrackFormatDescriptionReplacement objects in this array.
*/
-@property (readonly) NSArray <AVCompositionTrackFormatDescriptionReplacement *> *formatDescriptionReplacements API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0));
+@property (readonly) NSArray <AVCompositionTrackFormatDescriptionReplacement *> *formatDescriptionReplacements API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0), visionos(1.0));
@end
@@ -73,7 +73,8 @@
@class AVMutableCompositionTrackInternal;
-API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0))
+NS_SWIFT_NONSENDABLE
+API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0))
@interface AVMutableCompositionTrack : AVCompositionTrack
{
@private
@@ -84,7 +85,7 @@
@property enabled
@abstract Specifies whether the track is enabled or disabled. Default is YES.
*/
-@property (nonatomic, getter=isEnabled) BOOL enabled API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, getter=isEnabled) BOOL enabled API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@property naturalTimeScale
@@ -171,7 +172,7 @@
This method is equivalent to (but more efficient than) calling -insertTimeRange:ofTrack:atTime:error: for each timeRange/track pair. If this method returns an error, none of the time ranges will be inserted into the composition track. To specify an empty time range, pass NSNull for the track and a time range of starting at kCMTimeInvalid with a duration of the desired empty edit.
This method throws an exception if time ranges and tracks to not have the same array count.
*/
-- (BOOL)insertTimeRanges:(NSArray<NSValue *> *)timeRanges ofTracks:(NSArray<AVAssetTrack *> *)tracks atTime:(CMTime)startTime error:(NSError * _Nullable * _Nullable)outError API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0));
+- (BOOL)insertTimeRanges:(NSArray<NSValue *> *)timeRanges ofTracks:(NSArray<AVAssetTrack *> *)tracks atTime:(CMTime)startTime error:(NSError * _Nullable * _Nullable)outError API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@method insertEmptyTimeRange:
@@ -228,7 +229,7 @@
@param trackAssociationType
The type of track association to add between the receiver and the specified compositionTrack (for instance, AVTrackAssociationTypeChapterList).
*/
-- (void)addTrackAssociationToTrack:(AVCompositionTrack *)compositionTrack type:(AVTrackAssociationType)trackAssociationType API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0));
+- (void)addTrackAssociationToTrack:(AVCompositionTrack *)compositionTrack type:(AVTrackAssociationType)trackAssociationType API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0), visionos(1.0));
/*!
@method removeTrackAssociationToTrack:type:
@@ -238,7 +239,7 @@
@param trackAssociationType
The type of track association to remove between the receiver and the specified compositionTrack (for instance, AVTrackAssociationTypeChapterList).
*/
-- (void)removeTrackAssociationToTrack:(AVCompositionTrack *)compositionTrack type:(AVTrackAssociationType)trackAssociationType API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0));
+- (void)removeTrackAssociationToTrack:(AVCompositionTrack *)compositionTrack type:(AVTrackAssociationType)trackAssociationType API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0), visionos(1.0));
@end
@@ -248,7 +249,7 @@
@discussion Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
*/
NS_SWIFT_SENDABLE
-API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0))
+API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0), visionos(1.0))
@interface AVCompositionTrackFormatDescriptionReplacement : NSObject <NSSecureCoding>
/*!
@@ -276,7 +277,7 @@
@discussion You can use this method to make surgical changes to a track's format descriptions, such as adding format description extensions to a format description or changing the audio channel layout of an audio track. You should note that a format description can have extensions of type kCMFormatDescriptionExtension_VerbatimSampleDescription and kCMFormatDescriptionExtension_VerbatimISOSampleEntry; if you modify a copy of a format description, you should delete those extensions from the copy or your changes might be ignored. Also note that format description replacements are not transferred when performing editing operations on AVMutableCompositionTrack objects; for instance, inserting a range of a composition track into another composition track does not transfer any replacement format descriptions.
This method throws an exception if the media type of the replacement does not match the original format description.
*/
-- (void)replaceFormatDescription:(CMFormatDescriptionRef)originalFormatDescription withFormatDescription:(nullable CMFormatDescriptionRef)replacementFormatDescription API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0));
+- (void)replaceFormatDescription:(CMFormatDescriptionRef)originalFormatDescription withFormatDescription:(nullable CMFormatDescriptionRef)replacementFormatDescription API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0), visionos(1.0));
@end
@@ -291,12 +292,12 @@
- (BOOL)hasMediaCharacteristic:(AVMediaCharacteristic)mediaCharacteristic;
- (CMTime)samplePresentationTimeForTrackTime:(CMTime)trackTime;
- (NSArray<AVMetadataItem *> *)metadataForFormat:(AVMetadataFormat)format;
-- (NSArray<AVAssetTrack *> *)associatedTracksOfType:(AVTrackAssociationType)trackAssociationType API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
+- (NSArray<AVAssetTrack *> *)associatedTracksOfType:(AVTrackAssociationType)trackAssociationType API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
#if __swift__
@property (nonatomic, readonly) NSArray *formatDescriptions;
-@property (nonatomic, readonly, getter=isPlayable) BOOL playable API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0));
-@property (nonatomic, readonly, getter=isDecodable) BOOL decodable API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));
+@property (nonatomic, readonly, getter=isPlayable) BOOL playable API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0), visionos(1.0));
+@property (nonatomic, readonly, getter=isDecodable) BOOL decodable API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0), visionos(1.0));
@property (nonatomic, readonly, getter=isEnabled) BOOL enabled;
@property (nonatomic, readonly, getter=isSelfContained) BOOL selfContained;
@property (nonatomic, readonly) long long totalSampleDataLength;
@@ -308,15 +309,15 @@
@property (nonatomic, readonly) CGSize naturalSize;
@property (nonatomic, readonly) CGAffineTransform preferredTransform;
@property (nonatomic, readonly) float preferredVolume;
-@property (nonatomic, readonly) BOOL hasAudioSampleDependencies API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0));
+@property (nonatomic, readonly) BOOL hasAudioSampleDependencies API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0), visionos(1.0));
@property (nonatomic, readonly) float nominalFrameRate;
-@property (nonatomic, readonly) CMTime minFrameDuration API_AVAILABLE(macos(10.10), ios(7.0), tvos(9.0), watchos(1.0));
-@property (nonatomic, readonly) BOOL requiresFrameReordering API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0));
+@property (nonatomic, readonly) CMTime minFrameDuration API_AVAILABLE(macos(10.10), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
+@property (nonatomic, readonly) BOOL requiresFrameReordering API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0), visionos(1.0));
@property (nonatomic, readonly) NSArray<AVMetadataItem *> *commonMetadata;
-@property (nonatomic, readonly) NSArray<AVMetadataItem *> *metadata API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0));
+@property (nonatomic, readonly) NSArray<AVMetadataItem *> *metadata API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0), visionos(1.0));
@property (nonatomic, readonly) NSArray<AVMetadataFormat> *availableMetadataFormats;
-@property (nonatomic, readonly) NSArray<AVTrackAssociationType> *availableTrackAssociationTypes API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
-@property (nonatomic, readonly) BOOL canProvideSampleCursors API_AVAILABLE(macos(10.10), ios(16.0), tvos(16.0), watchos(9.0));
+@property (nonatomic, readonly) NSArray<AVTrackAssociationType> *availableTrackAssociationTypes API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
+@property (nonatomic, readonly) BOOL canProvideSampleCursors API_AVAILABLE(macos(10.10), ios(16.0), tvos(16.0), watchos(9.0), visionos(1.0));
#endif // __swift__
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCompositionTrackSegment.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCompositionTrackSegment.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCompositionTrackSegment.h 2024-04-08 15:38:29
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCompositionTrackSegment.h 2024-05-30 04:04:14
@@ -34,7 +34,7 @@
@class AVCompositionTrackSegmentInternal;
NS_SWIFT_SENDABLE
-API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0))
+API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0))
@interface AVCompositionTrackSegment : AVAssetTrackSegment
{
@private
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVContentKeySession.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVContentKeySession.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVContentKeySession.h 2024-04-17 08:16:26
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVContentKeySession.h 2024-05-30 05:00:55
@@ -21,8 +21,11 @@
Expired sessions are tracked as follows: a stream processing session is considered to be started after an instance of AVContentKeySession is created and the first object conforming to the AVContentKeyRecipient protocol is added to it. If an instance of AVContentKeySession that has reached this state does not receive an expire message before it's deallocated or the process in which it's running is terminated, an "expired session report" will subsequently be added to the pending list of expired session reports that indicates that the session expired abnormally. In contrast, for AVContentKeySessions that reach the state of having at least one object conforming to the AVContentKeyRecipient protocol added to them and later receive an expire message, "expired session reports" will be generated that indicate that the session expired normally.
To obtain the collection of pending expired session reports in order to provide them to the controlling entity associated with a specific app identifier, use +pendingExpiredSessionReportsWithAppIdentifier:.
After pending expired session reports have been sent to the controlling entity and their receipt has been acknowledged, they can be removed from the collection of pending expired session reports maintained by AVContentKeySession by using +removePendingExpiredSessionReports:withAppIdentifier:.
-*/
+ @discussion
+ Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
+ */
+
@class AVContentKeySessionInternal;
@class AVContentKeyRequest;
@class AVContentKeyResponse;
@@ -36,27 +39,28 @@
@group AVContentKeySystem string constants
@brief Used by AVContentKeySession to determine the method of key delivery
*/
-typedef NSString *AVContentKeySystem NS_STRING_ENUM API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(7.0));
+typedef NSString *AVContentKeySystem NS_STRING_ENUM API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(7.0), visionos(1.0));
/*!
@constant AVContentKeySystemFairPlayStreaming
@discussion Used to specify FairPlay Streaming (FPS) as the method of key delivery.
*/
-AVF_EXPORT AVContentKeySystem const AVContentKeySystemFairPlayStreaming API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(7.0));
+AVF_EXPORT AVContentKeySystem const AVContentKeySystemFairPlayStreaming API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(7.0), visionos(1.0));
/*!
@constant AVContentKeySystemClearKey
@discussion Used to specify clear key as the method of key delivery.
*/
-AVF_EXPORT AVContentKeySystem const AVContentKeySystemClearKey API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(7.0));
+AVF_EXPORT AVContentKeySystem const AVContentKeySystemClearKey API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(7.0), visionos(1.0));
/*!
@constant AVContentKeySystemAuthorizationToken
@discussion Used to specify a token that could be used to authorize playback of associated content key recipients.
*/
-AVF_EXPORT AVContentKeySystem const AVContentKeySystemAuthorizationToken API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(7.0));
+AVF_EXPORT AVContentKeySystem const AVContentKeySystemAuthorizationToken API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(7.0), visionos(1.0));
-API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(7.0))
+NS_SWIFT_SENDABLE
+API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(7.0), visionos(1.0))
@interface AVContentKeySession : NSObject {
@private
AVContentKeySessionInternal *_session;
@@ -71,7 +75,7 @@
@result A new AVContentKeySession.
@discussion This method returns an AVContentKeySession instance that is capable of managing collection of media content keys corresponding to the input keySystem. An NSInvalidArgumentException will be raised if the value of keySystem is unsupported.
*/
-+ (instancetype)contentKeySessionWithKeySystem:(AVContentKeySystem)keySystem API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(7.0));
++ (instancetype)contentKeySessionWithKeySystem:(AVContentKeySystem)keySystem API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(7.0), visionos(1.0));
/*!
@method contentKeySessionWithKeySystem:storageDirectoryAtURL:
@@ -147,7 +151,7 @@
Additional information necessary to obtain the key, or nil if none. See AVContentKeyRequest*Key below.
@discussion May be used to generate an AVContentKeyRequest from request initialization data already in hand, without awaiting such data during the processing of media data of an associated recipient.
*/
-- (void)processContentKeyRequestWithIdentifier:(nullable id)identifier initializationData:(nullable NSData *)initializationData options:(nullable NSDictionary<NSString *, id> *)options;
+- (void)processContentKeyRequestWithIdentifier:(nullable id) NS_SWIFT_SENDABLE identifier initializationData:(nullable NSData *)initializationData options:(nullable NSDictionary<NSString *, id> *) NS_SWIFT_SENDABLE options;
/*!
@method renewExpiringResponseDataForContentKeyRequest:
@@ -165,7 +169,7 @@
Once the secure token is ready, this block will be called with the token or an error describing the failure.
*/
- (void)makeSecureTokenForExpirationDateOfPersistableContentKey:(NSData *)persistableContentKeyData
- completionHandler:(void (^)(NSData * _Nullable secureTokenData, NSError * _Nullable error))handler API_AVAILABLE(macos(10.15), ios(11.0), tvos(17.0), watchos(7.0));
+ completionHandler:(void (^ NS_SWIFT_SENDABLE)(NSData * _Nullable secureTokenData, NSError * _Nullable error))handler API_AVAILABLE(macos(10.15), ios(11.0), tvos(17.0), watchos(7.0), visionos(1.0));
/*!
@typedef AVContentKeySessionServerPlaybackContextKey
@@ -177,15 +181,15 @@
/*!
@constant AVContentKeySessionServerPlaybackContextOptionProtocolVersions
- @abstract Specifies the versions of the content protection protocol supported by the application as an NSArray of one or more NSNumber objects. If not specified default protocol version of 1 is assumed.
+ @abstract Specifies the versions of the content protection protocol supported by the application; as an NSArray of one or more NSNumber objects. If this option is not set, an appropriate protocol version will be selected based on sideband information such as an associated HLS playlist. If such information is not available, a protocol version of 1 is assumed
*/
-AVF_EXPORT AVContentKeySessionServerPlaybackContextOption const AVContentKeySessionServerPlaybackContextOptionProtocolVersions API_AVAILABLE(macos(10.15), ios(12.2), tvos(17.0), watchos(7.0));
+AVF_EXPORT AVContentKeySessionServerPlaybackContextOption const AVContentKeySessionServerPlaybackContextOptionProtocolVersions API_AVAILABLE(macos(10.15), ios(12.2), tvos(17.0), watchos(7.0), visionos(1.0));
/*!
@constant AVContentKeySessionServerPlaybackContextOptionServerChallenge
@abstract Specifies a nonce as a 8-byte NSData object to be included in the secure server playback context (SPC) in order to prevent replay attacks. If not specified default server challenge of 0 is assumed.
*/
-AVF_EXPORT AVContentKeySessionServerPlaybackContextOption const AVContentKeySessionServerPlaybackContextOptionServerChallenge API_AVAILABLE(macos(10.15), ios(12.2), tvos(17.0), watchos(7.0));
+AVF_EXPORT AVContentKeySessionServerPlaybackContextOption const AVContentKeySessionServerPlaybackContextOptionServerChallenge API_AVAILABLE(macos(10.15), ios(12.2), tvos(17.0), watchos(7.0), visionos(1.0));
/*!
@method invalidatePersistableContentKey:options:completionHandler:
@@ -200,7 +204,7 @@
*/
- (void)invalidatePersistableContentKey:(NSData *)persistableContentKeyData
options:(nullable NSDictionary<AVContentKeySessionServerPlaybackContextOption, id> *)options
- completionHandler:(void (^)(NSData * _Nullable secureTokenData, NSError * _Nullable error))handler API_AVAILABLE(macos(10.15), ios(12.2), tvos(17.0), watchos(7.0));
+ completionHandler:(void (^ NS_SWIFT_SENDABLE)(NSData * _Nullable secureTokenData, NSError * _Nullable error))handler API_AVAILABLE(macos(10.15), ios(12.2), tvos(17.0), watchos(7.0), visionos(1.0));
/*!
@method invalidateAllPersistableContentKeysForApp:options:completionHandler:
@@ -215,7 +219,7 @@
*/
- (void)invalidateAllPersistableContentKeysForApp:(NSData *)appIdentifier
options:(nullable NSDictionary<AVContentKeySessionServerPlaybackContextOption, id> *)options
- completionHandler:(void (^)(NSData * _Nullable secureTokenData, NSError * _Nullable error))handler API_AVAILABLE(macos(10.15), ios(12.2), tvos(17.0), watchos(7.0));
+ completionHandler:(void (^ NS_SWIFT_SENDABLE)(NSData * _Nullable secureTokenData, NSError * _Nullable error))handler API_AVAILABLE(macos(10.15), ios(12.2), tvos(17.0), watchos(7.0), visionos(1.0));
@end
@@ -276,27 +280,28 @@
@group AVContentKeyRequestRetryReason string constants
@brief Used to specify a reason for asking the client to retry a content key request.
*/
-typedef NSString *AVContentKeyRequestRetryReason NS_STRING_ENUM API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(7.0));
+typedef NSString *AVContentKeyRequestRetryReason NS_STRING_ENUM API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(7.0), visionos(1.0));
/*!
@constant AVContentKeyRequestRetryReasonTimedOut
@discussion Indicates that the content key request should be retried because the key response was not set soon enough either due the initial request/response was taking too long, or a lease was expiring in the meantime.
*/
-AVF_EXPORT AVContentKeyRequestRetryReason const AVContentKeyRequestRetryReasonTimedOut API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(7.0));
+AVF_EXPORT AVContentKeyRequestRetryReason const AVContentKeyRequestRetryReasonTimedOut API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(7.0), visionos(1.0));
/*!
@constant AVContentKeyRequestRetryReasonReceivedResponseWithExpiredLease
@discussion Indicates that the content key request should be retried because a key response with expired lease was set on the previous content key request.
*/
-AVF_EXPORT AVContentKeyRequestRetryReason const AVContentKeyRequestRetryReasonReceivedResponseWithExpiredLease API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(7.0));
+AVF_EXPORT AVContentKeyRequestRetryReason const AVContentKeyRequestRetryReasonReceivedResponseWithExpiredLease API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(7.0), visionos(1.0));
/*!
@constant AVContentKeyRequestRetryReasonReceivedObsoleteContentKey
@discussion Indicates that the content key request should be retried because an obsolete key response was set on the previous content key request.
*/
-AVF_EXPORT AVContentKeyRequestRetryReason const AVContentKeyRequestRetryReasonReceivedObsoleteContentKey API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(7.0));
+AVF_EXPORT AVContentKeyRequestRetryReason const AVContentKeyRequestRetryReasonReceivedObsoleteContentKey API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(7.0), visionos(1.0));
-API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(7.0))
+NS_SWIFT_SENDABLE
+API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(7.0), visionos(1.0))
@protocol AVContentKeySessionDelegate <NSObject>
/*!
@@ -347,7 +352,7 @@
@discussion If the content key session provides an updated persistable content key data, the previous key data is no longer valid and cannot be used to answer future loading requests.
*/
@optional
-- (void)contentKeySession:(AVContentKeySession *)session didUpdatePersistableContentKey:(NSData *)persistableContentKey forContentKeyIdentifier:(id)keyIdentifier API_AVAILABLE(macos(10.15), ios(11.0), tvos(17.0), watchos(7.0));
+- (void)contentKeySession:(AVContentKeySession *)session didUpdatePersistableContentKey:(NSData *)persistableContentKey forContentKeyIdentifier:(id)keyIdentifier API_AVAILABLE(macos(10.15), ios(11.0), tvos(17.0), watchos(7.0), visionos(1.0));
/*!
@method contentKeySession:contentKeyRequest:didFailWithError:
@@ -387,7 +392,7 @@
@discussion Will be invoked by an AVContentKeySession when it is certain that the response client provided via -[AVContentKeyRequest processContentKeyResponse:] was successfully processed by the system.
*/
@optional
-- (void)contentKeySession:(AVContentKeySession *)session contentKeyRequestDidSucceed:(AVContentKeyRequest *)keyRequest API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(7.0));
+- (void)contentKeySession:(AVContentKeySession *)session contentKeyRequestDidSucceed:(AVContentKeyRequest *)keyRequest API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(7.0), visionos(1.0));
/*!
@method contentKeySessionContentProtectionSessionIdentifierDidChange:
@@ -405,7 +410,7 @@
@discussion Will be invoked by an AVContentKeySession when an expired session report is added to the storageURL
*/
@optional
-- (void)contentKeySessionDidGenerateExpiredSessionReport:(AVContentKeySession *)session API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(7.0));
+- (void)contentKeySessionDidGenerateExpiredSessionReport:(AVContentKeySession *)session API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(7.0), visionos(1.0));
/*!
@method contentKeySession:externalProtectionStatusDidChangeForContentKey:
@@ -417,7 +422,7 @@
@discussion When externalProtectionStatusDidChangeForContentKey is received, externalContentProtectionStatus should be queried to obtain the latest state.
*/
@optional
-- (void)contentKeySession:(AVContentKeySession *)session externalProtectionStatusDidChangeForContentKey:(AVContentKey *)contentKey API_AVAILABLE(macos(14.4), ios(17.4), tvos(17.4)) API_UNAVAILABLE(watchos);
+- (void)contentKeySession:(AVContentKeySession *)session externalProtectionStatusDidChangeForContentKey:(AVContentKey *)contentKey API_AVAILABLE(macos(14.4), ios(17.4), tvos(17.4), visionos(1.1)) API_UNAVAILABLE(watchos);
/*!
@method contentKeySession:didProvideContentKeyRequests:forInitializationData:
@@ -432,7 +437,7 @@
The requests for all keys in an initializationData will be provided at once through contentKeySession:didProvideContentKeyRequests:forInitializationData: and it takes precedence over contentKeySession:didProvideContentKeyRequest:.
*/
@optional
-- (void)contentKeySession:(AVContentKeySession *)session didProvideContentKeyRequests:(NSArray<AVContentKeyRequest *> *)keyRequests forInitializationData:(nullable NSData *)initializationData API_AVAILABLE(macos(14.4), ios(17.4), tvos(17.4), watchos(10.4));
+- (void)contentKeySession:(AVContentKeySession *)session didProvideContentKeyRequests:(NSArray<AVContentKeyRequest *> *)keyRequests forInitializationData:(nullable NSData *)initializationData API_AVAILABLE(macos(14.4), ios(17.4), tvos(17.4), watchos(10.4), visionos(1.1));
@end
@@ -458,18 +463,24 @@
AVContentKeyRequestStatusRetried = 3,
AVContentKeyRequestStatusCancelled = 4,
AVContentKeyRequestStatusFailed = 5
-} API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(7.0));
+} API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(7.0), visionos(1.0));
@class AVContentKeyRequestInternal;
-API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(7.0))
+/*!
+ @class AVContentKeyRequest
+ @discussion Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
+ */
+
+NS_SWIFT_SENDABLE
+API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(7.0), visionos(1.0))
@interface AVContentKeyRequest : NSObject
{
@private
AVContentKeyRequestInternal *_contentKeyRequest;
}
-/*
+/*!
@property status
@abstract This describes the state of the AVContentKeyRequest, value is one of AVContentKeyRequestStatus.
*/
@@ -487,7 +498,7 @@
@abstract Container- and protocol-specific identifier for the content key.
@discussion In order to use a key with an HTTP Live Streaming AVURLAsset, the identifier must be an NSURL that matches a key URI in the Media Playlist.
*/
-@property (readonly, nullable) id identifier;
+@property (readonly, nullable) id NS_SWIFT_SENDABLE identifier;
/*
@property initializationData
@@ -499,7 +510,7 @@
@property options
@abstract Additional information specified while initiaing key loading using -processContentKeyRequestWithIdentifier:initializationData:options:.
*/
-@property (readonly, copy) NSDictionary<NSString *, id> *options API_AVAILABLE(macos(10.14.4), ios(12.2), tvos(12.2), watchos(7.0));
+@property (readonly, copy) NSDictionary<NSString *, id> * NS_SWIFT_SENDABLE options API_AVAILABLE(macos(10.14.4), ios(12.2), tvos(12.2), watchos(7.0), visionos(1.0));
/*
@property canProvidePersistableContentKey
@@ -512,20 +523,20 @@
@property contentKeySpecifier
@abstract Specifies the requested content key.
*/
-@property (readonly) AVContentKeySpecifier *contentKeySpecifier API_AVAILABLE(macos(11.3), ios(14.5), tvos(14.5), watchos(7.4));
+@property (readonly) AVContentKeySpecifier *contentKeySpecifier API_AVAILABLE(macos(11.3), ios(14.5), tvos(14.5), watchos(7.4), visionos(1.0));
/*
@property contentKey
@abstract Represents an AVContentKey that results from an invocation of -processContentKeyResponse:.
@discussion Before the receiver achieves the status AVContentKeyRequestReceivedResponse, the value of this property will be nil. Once that status has been achieved, the value of this property becomes a non-nil AVContentKey that can be provided to content key recipients that apply content keys manually to objects that require them, such as CMSampleBuffers, or to initiate renewal. A non-nil value does not indicate that the content key is valid; authorization failures may yet be possible.
*/
-@property (readonly, nullable) AVContentKey *contentKey API_AVAILABLE(macos(11.3), ios(14.5), tvos(14.5), watchos(7.4));
+@property (readonly, nullable) AVContentKey *contentKey API_AVAILABLE(macos(11.3), ios(14.5), tvos(14.5), watchos(7.4), visionos(1.0));
/*
@constant AVContentKeyRequestRequiresValidationDataInSecureTokenKey
@abstract 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));
+AVF_EXPORT NSString *const AVContentKeyRequestRequiresValidationDataInSecureTokenKey API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0), visionos(1.0));
/*!
@method makeStreamingContentKeyRequestDataForApp:contentIdentifier:options:completionHandler:
@@ -543,7 +554,7 @@
- (void)makeStreamingContentKeyRequestDataForApp:(NSData *)appIdentifier
contentIdentifier:(nullable NSData *)contentIdentifier
options:(nullable NSDictionary<NSString *, id> *)options
- completionHandler:(void (^)(NSData * _Nullable contentKeyRequestData, NSError * _Nullable error))handler;
+ completionHandler:(void (^ NS_SWIFT_SENDABLE)(NSData * _Nullable contentKeyRequestData, NSError * _Nullable error))handler;
/*!
@method processContentKeyResponse:
@@ -576,11 +587,17 @@
@result YES if sucessful. If NO, this request should be responded to via processContentKeyResponse: or processContentKeyResponseError:.
@discussion When you receive an AVContentKeyRequest via -contentKeySession:didProvideContentKeyRequest: and you want the resulting key response to produce a key that can persist across multiple playback sessions, you must invoke -respondByRequestingPersistableContentKeyRequest on that AVContentKeyRequest in order to signal that you want to process an AVPersistableContentKeyRequest instead. If the underlying protocol supports persistable content keys, in response your delegate will receive an AVPersistableContentKeyRequest via -contentKeySession:didProvidePersistableContentKeyRequest:. NSInternalInconsistencyException will be raised, if you are attempting to create and use a persistable key but your AVContentKeySession delegate does not respond to contentKeySession:didProvidePersistableContentKeyRequest:.
*/
-- (BOOL)respondByRequestingPersistableContentKeyRequestAndReturnError:(NSError **)outError API_AVAILABLE(macos(10.15), ios(11.2), tvos(17.0), watchos(7.0));
+- (BOOL)respondByRequestingPersistableContentKeyRequestAndReturnError:(NSError **)outError API_AVAILABLE(macos(10.15), ios(11.2), tvos(17.0), watchos(7.0), visionos(1.0));
@end
-API_AVAILABLE(macos(10.15), ios(10.3), tvos(10.2), watchos(7.0))
+/*!
+ @class AVPersistableContentKeyRequest
+ @discussion Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
+ */
+
+NS_SWIFT_SENDABLE
+API_AVAILABLE(macos(10.15), ios(10.3), tvos(10.2), watchos(7.0), visionos(1.0))
@interface AVPersistableContentKeyRequest : AVContentKeyRequest
/*!
@@ -619,7 +636,7 @@
@discussion Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
*/
NS_SWIFT_SENDABLE
-API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(7.0))
+API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(7.0), visionos(1.0))
@interface AVContentKeyResponse : NSObject
{
@private
@@ -647,7 +664,7 @@
@result A new AVContentKeyResponse holding Clear Key data.
@discussion The object created by this method is typically used with an AVContentKeyRequest created by an AVContentKeySession using keySystem AVContentKeySystemClearKey. It is passed to AVContentKeyRequest -processContentKeyResponse: in order to supply the decryptor with key data.
*/
-+ (instancetype)contentKeyResponseWithClearKeyData:(NSData *)keyData initializationVector:(nullable NSData *)initializationVector API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(7.0));
++ (instancetype)contentKeyResponseWithClearKeyData:(NSData *)keyData initializationVector:(nullable NSData *)initializationVector API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(7.0), visionos(1.0));
/*!
@method contentKeyResponseWithAuthorizationTokenData:
@@ -657,7 +674,7 @@
@result A new AVContentKeyResponse holding the authorization token data.
@discussion The object created by this method is typically used with an AVContentKeyRequest created by an AVContentKeySession using keySystem AVContentKeySystemAuthorizationToken. It is passed to AVContentKeyRequest -processContentKeyResponse: in order to supply the authorization token data.
*/
-+ (instancetype) contentKeyResponseWithAuthorizationTokenData:(NSData *)authorizationTokenData API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(7.0));
++ (instancetype) contentKeyResponseWithAuthorizationTokenData:(NSData *)authorizationTokenData API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(7.0), visionos(1.0));
@end
@@ -671,7 +688,7 @@
@constant AVContentKeyRequestProtocolVersionsKey
@abstract Specifies the versions of the content protection protocol supported by the application as an NSArray of one or more NSNumber objects.
*/
-AVF_EXPORT NSString *const AVContentKeyRequestProtocolVersionsKey API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(7.0));
+AVF_EXPORT NSString *const AVContentKeyRequestProtocolVersionsKey API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(7.0), visionos(1.0));
/*!
@protocol AVContentKeyRecipient
@@ -679,7 +696,7 @@
@abstract
Classes of objects that may require decryption keys for media data in order to enable processing, such as parsing or playback, conform to this protocol.
*/
-API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(7.0))
+API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(7.0), visionos(1.0))
@protocol AVContentKeyRecipient
@optional
@@ -688,7 +705,7 @@
@abstract Informs the receiver that an AVContentKey has been obtained as the result of an invocation of -[AVContentKeyRequest processContentKeyResponse:].
@discussion The recipient may employ the AVContentKey for use with objects that support manual attachment of keys, such as CMSampleBuffer via an invocation of AVSampleBufferAttachContentKey.
*/
-- (void)contentKeySession:(AVContentKeySession *)contentKeySession didProvideContentKey:(AVContentKey *)contentKey API_AVAILABLE(macos(11.3), ios(14.5), tvos(14.5), watchos(7.4));
+- (void)contentKeySession:(AVContentKeySession *)contentKeySession didProvideContentKey:(AVContentKey *)contentKey API_AVAILABLE(macos(11.3), ios(14.5), tvos(14.5), watchos(7.4), visionos(1.0));
@required
@@ -701,7 +718,13 @@
@end
-API_AVAILABLE(macos(11.3), ios(14.5), tvos(14.5), watchos(7.4))
+/*!
+ @class AVContentKeySpecifier
+ @discussion Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
+*/
+
+NS_SWIFT_SENDABLE
+API_AVAILABLE(macos(11.3), ios(14.5), tvos(14.5), watchos(7.4), visionos(1.0))
@interface AVContentKeySpecifier : NSObject
/*!
@@ -742,13 +765,13 @@
@property identifier
@abstract Container and protocol-specific key identifier.
*/
-@property (readonly) id identifier;
+@property (readonly) id NS_SWIFT_SENDABLE identifier;
/*
@property options
@abstract Additional information necessary to obtain the key, can be empty if none needed.
*/
-@property (readonly) NSDictionary<NSString *, id> *options;
+@property (readonly) NSDictionary<NSString *, id> * NS_SWIFT_SENDABLE options;
@end
@@ -767,9 +790,15 @@
AVExternalContentProtectionStatusPending = 0,
AVExternalContentProtectionStatusSufficient = 1,
AVExternalContentProtectionStatusInsufficient = 2,
-} API_AVAILABLE(macos(14.4), ios(17.4), tvos(17.4)) API_UNAVAILABLE(watchos);
+} API_AVAILABLE(macos(14.4), ios(17.4), tvos(17.4), visionos(1.1)) API_UNAVAILABLE(watchos);
-API_AVAILABLE(macos(11.3), ios(14.5), tvos(14.5), watchos(7.4))
+/*!
+ @class AVContentKey
+ @discussion Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
+ */
+
+NS_SWIFT_SENDABLE
+API_AVAILABLE(macos(11.3), ios(14.5), tvos(14.5), watchos(7.4), visionos(1.0))
@interface AVContentKey : NSObject
/*
@@ -783,7 +812,7 @@
@abstract The external protection status for the AVContentKey based on all attached displays.
@discussion This property is not key-value observable, instead the contentKeySession:externalProtectionStatusDidChangeForContentKey: delegate method should be used.
*/
-@property (readonly) AVExternalContentProtectionStatus externalContentProtectionStatus API_AVAILABLE(macos(14.4), ios(17.4), tvos(17.4)) API_UNAVAILABLE(watchos);
+@property (readonly) AVExternalContentProtectionStatus externalContentProtectionStatus API_AVAILABLE(macos(14.4), ios(17.4), tvos(17.4), visionos(1.1)) API_UNAVAILABLE(watchos);
/*!
@method revoke
@@ -792,7 +821,7 @@
If the key is required again, or if the key is requested to be loaded by the application, a new AVContentKeyRequest will be dispatched to the delegate.
If there is media playback occurring which is dependent on the content key it will fail and may result in an error being generated with the playback halting.
*/
-- (void)revoke API_AVAILABLE(macos(14.4), ios(17.4), tvos(17.4), watchos(10.4));
+- (void)revoke API_AVAILABLE(macos(14.4), ios(17.4), tvos(17.4), watchos(10.4), visionos(1.1));
@end
/*!
@@ -806,7 +835,7 @@
If the result is NO and errorOut is non-NULL, the location referenced by errorOut receives an instance of NSError that describes the reason for failure to attach the content key.
@discussion The client is expected to attach AVContentKeys to CMSampleBuffers that have been created by the client for enqueueing with AVSampleBufferDisplayLayer or AVSampleBufferAudioRenderer, for which the AVContentKeySpecifier matches indications of suitability that are available to the client according to the content key system that's in use.
*/
-AVF_EXPORT BOOL AVSampleBufferAttachContentKey(CMSampleBufferRef sbuf, AVContentKey *contentKey, NSError * _Nullable * _Nullable outError) API_AVAILABLE(macos(11.3), ios(14.5), tvos(14.5), watchos(7.4));
+AVF_EXPORT BOOL AVSampleBufferAttachContentKey(CMSampleBufferRef sbuf, AVContentKey *contentKey, NSError * _Nullable * _Nullable outError) API_AVAILABLE(macos(11.3), ios(14.5), tvos(14.5), watchos(7.4), visionos(1.0));
NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVDepthData.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVDepthData.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVDepthData.h 2024-04-19 07:43:57
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVDepthData.h 2024-05-30 08:09:52
@@ -153,7 +153,7 @@
@discussion
This property presents the available pixel format types as an array of NSNumbers, each wrapping an OSType (CV pixel format type).
*/
-@property(readonly) NSArray<NSNumber *> *availableDepthDataTypes;
+@property(readonly) NSArray<NSNumber *> *availableDepthDataTypes NS_REFINED_FOR_SWIFT;
/*!
@method dictionaryRepresentationForAuxiliaryDataType:
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVError.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVError.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVError.h 2024-04-08 16:42:01
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVError.h 2024-05-30 04:49:54
@@ -4,29 +4,29 @@
Framework: AVFoundation
- Copyright 2010-2022 Apple Inc. All rights reserved.
+ Copyright 2010-2024 Apple Inc. All rights reserved.
*/
#import <AVFoundation/AVBase.h>
#import <Foundation/Foundation.h>
-AVF_EXPORT NSErrorDomain const AVFoundationErrorDomain API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT NSErrorDomain const AVFoundationErrorDomain API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
-AVF_EXPORT NSString *const AVErrorDeviceKey API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT NSString *const AVErrorTimeKey API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT NSString *const AVErrorFileSizeKey API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT NSString *const AVErrorPIDKey API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT NSString *const AVErrorRecordingSuccessfullyFinishedKey API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0)); // an NSNumber carrying a BOOL indicating whether the recording is playable
-AVF_EXPORT NSString *const AVErrorMediaTypeKey API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0)); // an NSString, as defined in AVMediaFormat.h
-AVF_EXPORT NSString *const AVErrorMediaSubTypeKey API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0)); // an NSArray of NSNumbers carrying four character codes (4ccs) as defined in CoreAudioTypes.h for audio media and in CMFormatDescription.h for video media.
-AVF_EXPORT NSString *const AVErrorPresentationTimeStampKey API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0)); // an NSValue carrying a CMTime
-AVF_EXPORT NSString *const AVErrorPersistentTrackIDKey API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0)); // an NSNumber carrying a CMPersistentTrackID
-AVF_EXPORT NSString *const AVErrorFileTypeKey API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0)); // an NSString, as defined in AVMediaFormat.h
+AVF_EXPORT NSString *const AVErrorDeviceKey API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT NSString *const AVErrorTimeKey API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT NSString *const AVErrorFileSizeKey API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT NSString *const AVErrorPIDKey API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT NSString *const AVErrorRecordingSuccessfullyFinishedKey API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0)); // an NSNumber carrying a BOOL indicating whether the recording is playable
+AVF_EXPORT NSString *const AVErrorMediaTypeKey API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0), visionos(1.0)); // an NSString, as defined in AVMediaFormat.h
+AVF_EXPORT NSString *const AVErrorMediaSubTypeKey API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0), visionos(1.0)); // an NSArray of NSNumbers carrying four character codes (4ccs) as defined in CoreAudioTypes.h for audio media and in CMFormatDescription.h for video media.
+AVF_EXPORT NSString *const AVErrorPresentationTimeStampKey API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0), visionos(1.0)); // an NSValue carrying a CMTime
+AVF_EXPORT NSString *const AVErrorPersistentTrackIDKey API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0), visionos(1.0)); // an NSNumber carrying a CMPersistentTrackID
+AVF_EXPORT NSString *const AVErrorFileTypeKey API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0), visionos(1.0)); // an NSString, as defined in AVMediaFormat.h
#if (TARGET_OS_MAC && !(TARGET_OS_EMBEDDED || TARGET_OS_IPHONE))
-AVF_EXPORT NSString *const AVErrorDiscontinuityFlagsKey API_AVAILABLE(macos(10.7)) API_UNAVAILABLE(ios, tvos, watchos);
+AVF_EXPORT NSString *const AVErrorDiscontinuityFlagsKey API_AVAILABLE(macos(10.7)) API_UNAVAILABLE(ios, tvos, watchos, visionos);
#endif // (TARGET_OS_MAC && !(TARGET_OS_EMBEDDED || TARGET_OS_IPHONE))
@@ -88,37 +88,38 @@
AVErrorFailedToLoadMediaData = -11849,
AVErrorServerIncorrectlyConfigured = -11850,
AVErrorApplicationIsNotAuthorizedToUseDevice = -11852,
- AVErrorFailedToParse API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0)) = -11853,
- AVErrorFileTypeDoesNotSupportSampleReferences API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0)) = -11854, // userInfo contains AVErrorFileTypeKey
- AVErrorUndecodableMediaData API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0)) = -11855,
- AVErrorAirPlayControllerRequiresInternet API_AVAILABLE(macos(10.10), ios(8.3), tvos(9.0), watchos(1.3)) = -11856,
- AVErrorAirPlayReceiverRequiresInternet API_AVAILABLE(macos(10.10), ios(8.3), tvos(9.0), watchos(1.3)) = -11857,
- AVErrorVideoCompositorFailed API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0)) = -11858,
- AVErrorRecordingAlreadyInProgress API_AVAILABLE(ios(9.0), tvos(9.0), watchos(2.0)) API_UNAVAILABLE(macos) = -11859, // on iOS, AVCaptureMovieFileOutput only supports one recording at a time
- AVErrorCreateContentKeyRequestFailed API_AVAILABLE(macos(10.11)) API_UNAVAILABLE(ios, tvos) API_UNAVAILABLE(watchos) = -11860,
- AVErrorUnsupportedOutputSettings API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0)) = -11861,
- AVErrorOperationNotAllowed API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0)) = -11862,
- AVErrorContentIsUnavailable API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0)) = -11863,
- AVErrorFormatUnsupported API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0)) = -11864,
- AVErrorMalformedDepth API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0)) = -11865,
- AVErrorContentNotUpdated API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0)) = -11866,
- AVErrorNoLongerPlayable API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0)) = -11867,
- AVErrorNoCompatibleAlternatesForExternalDisplay API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0)) = -11868,
- AVErrorNoSourceTrack API_AVAILABLE(macos(10.13.2), ios(11.2), tvos(11.2), watchos(4.2)) = -11869,
- AVErrorExternalPlaybackNotSupportedForAsset API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0)) = -11870,
- AVErrorOperationNotSupportedForPreset API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0)) = -11871,
- AVErrorSessionHardwareCostOverage API_AVAILABLE(ios(13.0), tvos(17.0)) API_UNAVAILABLE(macos) API_UNAVAILABLE(watchos) = -11872,
- AVErrorUnsupportedDeviceActiveFormat API_AVAILABLE(ios(13.0), tvos(17.0)) API_UNAVAILABLE(macos) API_UNAVAILABLE(watchos) = -11873,
- AVErrorIncorrectlyConfigured API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0)) = -11875,
- AVErrorSegmentStartedWithNonSyncSample API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0)) = -11876,
- AVErrorRosettaNotInstalled API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0)) = -11877,
- AVErrorOperationCancelled API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0)) = -11878,
- AVErrorContentKeyRequestCancelled API_AVAILABLE(macos(11.4), ios(14.6), tvos(14.6), watchos(7.5)) = -11879,
- AVErrorInvalidSampleCursor API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0)) = -11880,
- AVErrorFailedToLoadSampleData API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0)) = -11881,
- AVErrorAirPlayReceiverTemporarilyUnavailable API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0)) = -11882,
- AVErrorEncodeFailed API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0)) = -11883,
- AVErrorSandboxExtensionDenied API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0)) = -11884,
+ AVErrorFailedToParse API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0), visionos(1.0)) = -11853,
+ AVErrorFileTypeDoesNotSupportSampleReferences API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0), visionos(1.0)) = -11854, // userInfo contains AVErrorFileTypeKey
+ AVErrorUndecodableMediaData API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0), visionos(1.0)) = -11855,
+ AVErrorAirPlayControllerRequiresInternet API_AVAILABLE(macos(10.10), ios(8.3), tvos(9.0), watchos(1.3), visionos(1.0)) = -11856,
+ AVErrorAirPlayReceiverRequiresInternet API_AVAILABLE(macos(10.10), ios(8.3), tvos(9.0), watchos(1.3), visionos(1.0)) = -11857,
+ AVErrorVideoCompositorFailed API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0), visionos(1.0)) = -11858,
+ AVErrorRecordingAlreadyInProgress API_AVAILABLE(ios(9.0), tvos(9.0), watchos(2.0), visionos(1.0)) API_UNAVAILABLE(macos) = -11859, // on iOS, AVCaptureMovieFileOutput only supports one recording at a time
+ AVErrorCreateContentKeyRequestFailed API_AVAILABLE(macos(10.11)) API_UNAVAILABLE(ios, tvos, visionos) API_UNAVAILABLE(watchos) = -11860,
+ AVErrorUnsupportedOutputSettings API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0), visionos(1.0)) = -11861,
+ AVErrorOperationNotAllowed API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0), visionos(1.0)) = -11862,
+ AVErrorContentIsUnavailable API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0), visionos(1.0)) = -11863,
+ AVErrorFormatUnsupported API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0), visionos(1.0)) = -11864,
+ AVErrorMalformedDepth API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0), visionos(1.0)) = -11865,
+ AVErrorContentNotUpdated API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0), visionos(1.0)) = -11866,
+ AVErrorNoLongerPlayable API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0), visionos(1.0)) = -11867,
+ AVErrorNoCompatibleAlternatesForExternalDisplay API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0), visionos(1.0)) = -11868,
+ AVErrorNoSourceTrack API_AVAILABLE(macos(10.13.2), ios(11.2), tvos(11.2), watchos(4.2), visionos(1.0)) = -11869,
+ AVErrorExternalPlaybackNotSupportedForAsset API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0), visionos(1.0)) = -11870,
+ AVErrorOperationNotSupportedForPreset API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0), visionos(1.0)) = -11871,
+ AVErrorSessionHardwareCostOverage API_AVAILABLE(ios(13.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(macos) API_UNAVAILABLE(watchos) = -11872,
+ AVErrorUnsupportedDeviceActiveFormat API_AVAILABLE(ios(13.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(macos) API_UNAVAILABLE(watchos) = -11873,
+ AVErrorIncorrectlyConfigured API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0), visionos(1.0)) = -11875,
+ AVErrorSegmentStartedWithNonSyncSample API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0), visionos(1.0)) = -11876,
+ AVErrorRosettaNotInstalled API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0), visionos(1.0)) = -11877,
+ AVErrorOperationCancelled API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0)) = -11878,
+ AVErrorContentKeyRequestCancelled API_AVAILABLE(macos(11.4), ios(14.6), tvos(14.6), watchos(7.5), visionos(1.0)) = -11879,
+ AVErrorInvalidSampleCursor API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0), visionos(1.0)) = -11880,
+ AVErrorFailedToLoadSampleData API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0), visionos(1.0)) = -11881,
+ AVErrorAirPlayReceiverTemporarilyUnavailable API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0), visionos(1.0)) = -11882,
+ AVErrorEncodeFailed API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0), visionos(1.0)) = -11883,
+ AVErrorSandboxExtensionDenied API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0), visionos(1.0)) = -11884,
+ AVErrorToneMappingFailed API_AVAILABLE(macos(15.0), ios(18.0)) API_UNAVAILABLE(tvos, watchos, visionos) = -11885,
};
#else
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVFAudio.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVFAudio.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVFAudio.h 2024-04-19 07:54:56
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVFAudio.h 2024-05-31 07:00:58
@@ -50,6 +50,10 @@
#import <AVFoundation/AVAudioSessionRoute.h>
#import <AVFoundation/AVAudioSessionTypes.h>
-#if TARGET_OS_OSX
+#if TARGET_OS_OSX || TARGET_OS_MACCATALYST
#import <AVFoundation/AVAudioRoutingArbiter.h>
-#endif
+#endif // TARGET_OS_OSX || TARGET_OS_MACCATALYST
+
+#if TARGET_OS_EMBEDDED || TARGET_OS_SIMULATOR
+#import <AVFoundation/AVSpeechSynthesis.h>
+#endif // TARGET_OS_IPHONE
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVFCore.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVFCore.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVFCore.h 2024-04-17 08:13:09
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVFCore.h 2024-05-30 11:22:36
@@ -3,7 +3,7 @@
Framework: AVFoundation
- Copyright 2019 Apple Inc. All rights reserved.
+ Copyright 2019-2024 Apple Inc. All rights reserved.
*/
@@ -27,13 +27,12 @@
#import <AVFoundation/AVAssetWriter.h>
#import <AVFoundation/AVAssetWriterInput.h>
#import <AVFoundation/AVAssetPlaybackAssistant.h>
+#import <AVFoundation/AVAssetSegmentReport.h>
#import <AVFoundation/AVAsynchronousKeyValueLoading.h>
#import <AVFoundation/AVAudioMix.h>
#import <AVFoundation/AVAudioProcessingSettings.h>
-
#import <AVFoundation/AVAssetDownloadTask.h>
#import <AVFoundation/AVAssetDownloadStorageManager.h>
-
#import <AVFoundation/AVCaption.h>
#import <AVFoundation/AVCaptionGroup.h>
#import <AVFoundation/AVCaptionGrouper.h>
@@ -41,11 +40,11 @@
#import <AVFoundation/AVCaptionFormatConformer.h>
#import <AVFoundation/AVCaptionRenderer.h>
#import <AVFoundation/AVCaptionSettings.h>
-
#import <AVFoundation/AVComposition.h>
#import <AVFoundation/AVCompositionTrack.h>
#import <AVFoundation/AVCompositionTrackSegment.h>
#import <AVFoundation/AVError.h>
+#import <AVFoundation/AVGeometry.h>
#import <AVFoundation/AVMediaFormat.h>
#import <AVFoundation/AVMediaSelection.h>
#import <AVFoundation/AVMediaSelectionGroup.h>
@@ -69,7 +68,9 @@
#import <AVFoundation/AVPlayerLooper.h>
#import <AVFoundation/AVPlayerMediaSelectionCriteria.h>
#import <AVFoundation/AVPlayerInterstitialEventController.h>
+#import <AVFoundation/AVPlayerItemIntegratedTimeline.h>
#import <AVFoundation/AVQueuedSampleBufferRendering.h>
+#import <AVFoundation/AVRenderedCaptionImage.h>
#import <AVFoundation/AVRouteDetector.h>
#import <AVFoundation/AVSampleBufferAudioRenderer.h>
#import <AVFoundation/AVSampleBufferDisplayLayer.h>
@@ -89,3 +90,4 @@
#if TARGET_OS_IPHONE && ! TARGET_OS_MACCATALYST
#import <AVFoundation/AVDisplayCriteria.h>
#endif
+#import <AVFoundation/AVMetrics.h>
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVFoundation.apinotes /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVFoundation.apinotes
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVFoundation.apinotes 2024-04-19 07:53:37
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVFoundation.apinotes 2024-05-31 06:17:01
@@ -376,6 +376,9 @@
- Selector: 'insertTimeRange:ofAsset:atTime:completionHandler:'
SwiftName: insertTimeRange(_:of:at:completionHandler:)
MethodKind: Instance
+ - Selector: 'insertTimeRange:ofTracks:atTime:error:'
+ SwiftName: insertTimeRange(_:of:at:)
+ MethodKind: Instance
- Selector: 'insertEmptyTimeRange:'
SwiftName: insertEmptyTimeRange(_:)
MethodKind: Instance
@@ -882,6 +885,8 @@
Typedefs:
- Name: AVAssetImageGeneratorApertureMode
SwiftName: AVAssetImageGenerator.ApertureMode
+- Name: AVAssetImageGeneratorDynamicRangePolicy
+ SwiftName: AVAssetImageGenerator.DynamicRangePolicy
- Name: AVAssetWriterInputMediaDataLocation
SwiftName: AVAssetWriterInput.MediaDataLocation
- Name: AVCaptureDeviceTransportControlsSpeed
@@ -1340,6 +1345,12 @@
- Name: AVPlayerInterstitialEventMonitorAssetListResponseStatusDidChangeNotification
SwiftName: AVPlayerInterstitialEventMonitor.assetListResponseStatusDidChangeNotification
+# AVPlayerItemIntegratedTimeline
+- Name: AVPlayerIntegratedTimelineSnapshotsOutOfSyncNotification
+ SwiftName: AVPlayerItemIntegratedTimeline.snapshotsOutOfSyncNotification
+- Name: AVPlayerIntegratedTimelineSnapshotsOutOfSyncReasonKey
+ SwiftName: AVPlayerItemIntegratedTimeline.snapshotsOutOfSyncReasonKey
+
# AVPlaybackCoordinator
- Name: AVPlaybackCoordinatorOtherParticipantsDidChangeNotification
SwiftName: AVPlaybackCoordinator.otherParticipantsDidChangeNotification
@@ -2186,6 +2197,8 @@
SwiftWrapper: none
- Name: AVAssetImageGeneratorApertureMode
SwiftWrapper: none
+ - Name: AVAssetImageGeneratorDynamicRangePolicy
+ SwiftWrapper: none
- Name: AVAudioTimePitchAlgorithm
SwiftWrapper: none
- Name: AVCaptureDeviceTransportControlsSpeed
@@ -2707,6 +2720,8 @@
SwiftName: AVAssetWriterInputMediaDataLocation
- Name: AVAssetImageGeneratorApertureMode
SwiftName: AVAssetImageGeneratorApertureMode
+ - Name: AVAssetImageGeneratorDynamicRangePolicy
+ SwiftName: AVAssetImageGenerator.DynamicRangePolicy
- Name: AVContentKeyRequestRetryReason
SwiftName: AVContentKeyRequestRetryReason
- Name: AVPlayerItemLegibleOutputTextStylingResolution
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVGeometry.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVGeometry.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVGeometry.h 2024-04-17 08:13:13
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVGeometry.h 2024-05-30 11:22:40
@@ -26,7 +26,7 @@
@param boundingRect The bounding CGRect you wish to fit into.
*/
-AVF_EXPORT CGRect AVMakeRectWithAspectRatioInsideRect(CGSize aspectRatio, CGRect boundingRect) API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT CGRect AVMakeRectWithAspectRatioInsideRect(CGSize aspectRatio, CGRect boundingRect) API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*
@@ -47,7 +47,7 @@
@discussion
This extension simplifies converting CMVideoDimensions struct values into NSValue objects.
*/
-+ (NSValue *)valueWithCMVideoDimensions:(CMVideoDimensions)dimensions API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0));
++ (NSValue *)valueWithCMVideoDimensions:(CMVideoDimensions)dimensions API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0), visionos(1.0));
/*!
@property CMVideoDimensionsValue
@@ -57,7 +57,7 @@
@discussion
This property simplifies accessing the contents of AVCaptureDeviceFormat.supportedMaxPhotoDimensions which are CMVideoDimension struct values encoded in NSValue objects.
*/
-@property (readonly) CMVideoDimensions CMVideoDimensionsValue API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0));
+@property (readonly) CMVideoDimensions CMVideoDimensionsValue API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0), visionos(1.0));
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVMediaFormat.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVMediaFormat.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVMediaFormat.h 2024-04-17 08:15:59
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVMediaFormat.h 2024-05-30 05:30:47
@@ -4,7 +4,7 @@
Framework: AVFoundation
- Copyright 2010-2020 Apple Inc. All rights reserved.
+ Copyright 2010-2023 Apple Inc. All rights reserved.
*/
@@ -14,15 +14,15 @@
// Media types
typedef NSString * AVMediaType NS_EXTENSIBLE_STRING_ENUM;
-AVF_EXPORT AVMediaType const AVMediaTypeVideo API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMediaType const AVMediaTypeAudio API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMediaType const AVMediaTypeText API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMediaType const AVMediaTypeClosedCaption API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMediaType const AVMediaTypeSubtitle API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMediaType const AVMediaTypeTimecode API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMediaType const AVMediaTypeMetadata API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMediaType const AVMediaTypeMuxed API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMediaType const AVMediaTypeHaptic API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0));
+AVF_EXPORT AVMediaType const AVMediaTypeVideo API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMediaType const AVMediaTypeAudio API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMediaType const AVMediaTypeText API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMediaType const AVMediaTypeClosedCaption API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMediaType const AVMediaTypeSubtitle API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMediaType const AVMediaTypeTimecode API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMediaType const AVMediaTypeMetadata API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMediaType const AVMediaTypeMuxed API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMediaType const AVMediaTypeHaptic API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0), visionos(1.0));
/*!
@enum AVVideoRange
@@ -34,9 +34,9 @@
Indicates that the video range as PQ
*/
typedef NSString * AVVideoRange NS_TYPED_ENUM;
- AVF_EXPORT AVVideoRange const AVVideoRangeSDR API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
- AVF_EXPORT AVVideoRange const AVVideoRangeHLG API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
- AVF_EXPORT AVVideoRange const AVVideoRangePQ API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+ AVF_EXPORT AVVideoRange const AVVideoRangeSDR API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
+ AVF_EXPORT AVVideoRange const AVVideoRangeHLG API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
+ AVF_EXPORT AVVideoRange const AVVideoRangePQ API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
/*!
@constant AVMediaTypeMetadataObject
@@ -69,9 +69,9 @@
If clients want to record a particular kind of metadata to a movie, they must manually form connections
between a AVMediaTypeMetadata port and the movie file output using AVCaptureSession's -addConnection API.
*/
-AVF_EXPORT AVMediaType const AVMediaTypeMetadataObject API_AVAILABLE(ios(9.0), tvos(9.0)) API_UNAVAILABLE(macos, watchos);
+AVF_EXPORT AVMediaType const AVMediaTypeMetadataObject API_AVAILABLE(ios(9.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(macos, watchos);
-AVF_EXPORT AVMediaType const AVMediaTypeDepthData API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT AVMediaType const AVMediaTypeDepthData API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), visionos(1.0)) API_UNAVAILABLE(watchos);
// Media characteristics
@@ -84,7 +84,7 @@
AVMediaTypeVideo, AVMediaTypeSubtitle, AVMediaTypeClosedCaption are examples of media types with the characteristic AVMediaCharacteristicVisual.
Also see -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
*/
-AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicVisual API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicVisual API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVMediaCharacteristicAudible
@@ -93,7 +93,7 @@
AVMediaTypeAudio is a media type with the characteristic AVMediaCharacteristicAudible.
Also see -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
*/
-AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicAudible API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicAudible API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVMediaCharacteristicLegible
@@ -102,7 +102,7 @@
AVMediaTypeSubtitle and AVMediaTypeClosedCaption are examples of media types with the characteristic AVMediaCharacteristicLegible.
Also see -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
*/
-AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicLegible API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicLegible API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVMediaCharacteristicFrameBased
@@ -111,7 +111,7 @@
Frame-based content typically comprises discrete media samples that, once rendered, can remain current for indefinite periods of time without additional processing in support of "time-stretching". Further, any dependencies between samples are always explicitly signalled, so that the operations required to render any single sample can readily be performed on demand. AVMediaTypeVideo is the most common type of frame-based media. AVMediaTypeAudio is the most common counterexample.
Also see -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
*/
-AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicFrameBased API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicFrameBased API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVMediaCharacteristicUsesWideGamutColorSpace
@@ -119,7 +119,7 @@
@discussion
A wide color space such as AVVideo*_P3_D65 contains additional dynamic range that may benefit from special treatment when compositing. Care should be taken to avoid clamping. Non-wide spaces include AVVideo*_ITU_R_709_2 and AVVideo*_SMPTE_C.
*/
-AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicUsesWideGamutColorSpace API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0));
+AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicUsesWideGamutColorSpace API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0), visionos(1.0));
/*!
@constant AVMediaCharacteristicContainsHDRVideo
@@ -129,7 +129,7 @@
The value of this characteristic is @“public.contains-hdr-video".
Note for content authors: the presence of this characteristic is strictly inferred from the format description of the associated track.
*/
-AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicContainsHDRVideo API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicContainsHDRVideo API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@constant AVMediaCharacteristicContainsAlphaChannel
@@ -137,7 +137,7 @@
@discussion
To determine whether alpha is straight or pre-multiplied, look for the format description extension with key kCMFormatDescriptionExtension_AlphaChannelMode.
*/
-AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicContainsAlphaChannel API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicContainsAlphaChannel API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@constant AVMediaCharacteristicIsMainProgramContent
@@ -149,7 +149,7 @@
Also see -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
*/
-AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicIsMainProgramContent API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicIsMainProgramContent API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVMediaCharacteristicIsAuxiliaryContent
@@ -162,7 +162,7 @@
Also see -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
*/
-AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicIsAuxiliaryContent API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicIsAuxiliaryContent API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVMediaCharacteristicIsOriginalContent
@@ -175,7 +175,7 @@
Also see -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
*/
-AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicIsOriginalContent API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0));
+AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicIsOriginalContent API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0), visionos(1.0));
/*!
@constant AVMediaCharacteristicContainsOnlyForcedSubtitles
@@ -187,7 +187,7 @@
Also see -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
*/
-AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicContainsOnlyForcedSubtitles API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicContainsOnlyForcedSubtitles API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVMediaCharacteristicTranscribesSpokenDialogForAccessibility
@@ -206,7 +206,7 @@
Also see -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
*/
-AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicTranscribesSpokenDialogForAccessibility API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicTranscribesSpokenDialogForAccessibility API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVMediaCharacteristicDescribesMusicAndSoundForAccessibility
@@ -225,7 +225,7 @@
Also see -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
*/
-AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicDescribesMusicAndSoundForAccessibility API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicDescribesMusicAndSoundForAccessibility API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVMediaCharacteristicEnhancesSpeechIntelligibility
@@ -238,7 +238,7 @@
Also see -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
*/
-AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicEnhancesSpeechIntelligibility API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0));
+AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicEnhancesSpeechIntelligibility API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0), visionos(1.0));
/*!
@constant AVMediaCharacteristicEasyToRead
@@ -253,7 +253,7 @@
Also see -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
*/
-AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicEasyToRead API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicEasyToRead API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVMediaCharacteristicDescribesVideoForAccessibility
@@ -266,7 +266,7 @@
Also see -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
*/
-AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicDescribesVideoForAccessibility API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicDescribesVideoForAccessibility API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVMediaCharacteristicLanguageTranslation
@@ -277,7 +277,7 @@
Note for content authors: for QuickTime movie and .m4v files a media option is considered to have the characteristic AVMediaCharacteristicLanguageTranslation only if it's explicitly tagged with that characteristic.
See the discussion of the tagging of tracks with media characteristics below.
*/
-AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicLanguageTranslation API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0));
+AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicLanguageTranslation API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0), visionos(1.0));
/*!
@constant AVMediaCharacteristicDubbedTranslation
@@ -289,7 +289,7 @@
Note for content authors: for QuickTime movie and .m4v files a media option is considered to have the characteristic AVMediaCharacteristicDubbedTranslation only if it's explicitly tagged with that characteristic.
See the discussion of the tagging of tracks with media characteristics below.
*/
-AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicDubbedTranslation API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0));
+AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicDubbedTranslation API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0), visionos(1.0));
/*!
@constant AVMediaCharacteristicVoiceOverTranslation
@@ -301,7 +301,7 @@
Note for content authors: for QuickTime movie and .m4v files a media option is considered to have the characteristic AVMediaCharacteristicVoiceOverTranslation only if it's explicitly tagged with that characteristic.
See the discussion of the tagging of tracks with media characteristics below.
*/
-AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicVoiceOverTranslation API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0));
+AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicVoiceOverTranslation API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0), visionos(1.0));
/*!
@constant AVMediaCharacteristicTactileMinimal
@@ -313,7 +313,7 @@
Note for content authors: for QuickTime movie and MPEG-4 files a track is considered to have the characteristic AVMediaCharacteristicTactileMinimal only if it's explicitly tagged with that characteristic.
See the discussion of the tagging of tracks with media characteristics below.
*/
-AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicTactileMinimal API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0));
+AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicTactileMinimal API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0), visionos(1.0));
/*!
@constant AVMediaCharacteristicContainsStereoMultiviewVideo
@@ -323,7 +323,7 @@
The value of this characteristic is @“public.contains-stereo-multiview-video".
Note for content authors: the presence of this characteristic is strictly inferred from the format description of the associated track.
*/
-AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicContainsStereoMultiviewVideo API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicContainsStereoMultiviewVideo API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@constant AVMediaCharacteristicCarriesVideoStereoMetadata
@@ -333,7 +333,7 @@
The value of this characteristic is @“com.apple.quicktime.video.stereo-metadata".
Note for content authors: the presence of this characteristic is strictly inferred from the format description of the associated track.
*/
-AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicCarriesVideoStereoMetadata API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicCarriesVideoStereoMetadata API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*!
@constant AVMediaCharacteristicIndicatesHorizontalFieldOfView
@@ -343,7 +343,7 @@
The value of this characteristic is @“public.indicates-horizontal-field-of-view".
Note for content authors: the presence of this characteristic is strictly inferred from the format description of the associated track.
*/
-AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicIndicatesHorizontalFieldOfView API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+AVF_EXPORT AVMediaCharacteristic const AVMediaCharacteristicIndicatesHorizontalFieldOfView API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*
Tagging of tracks of .mov and .m4v files with media characteristics
@@ -390,7 +390,7 @@
The value of this UTI is @"com.apple.quicktime-movie".
Files are identified with the .mov and .qt extensions.
*/
-AVF_EXPORT AVFileType const AVFileTypeQuickTimeMovie API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVFileType const AVFileTypeQuickTimeMovie API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVFileTypeMPEG4
@@ -399,7 +399,7 @@
The value of this UTI is @"public.mpeg-4".
Files are identified with the .mp4 extension.
*/
-AVF_EXPORT AVFileType const AVFileTypeMPEG4 API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVFileType const AVFileTypeMPEG4 API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVFileTypeAppleM4V
@@ -407,7 +407,7 @@
The value of this UTI is @"com.apple.m4v-video".
Files are identified with the .m4v extension.
*/
-AVF_EXPORT AVFileType const AVFileTypeAppleM4V API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVFileType const AVFileTypeAppleM4V API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVFileTypeAppleM4A
@@ -415,7 +415,7 @@
The value of this UTI is @"com.apple.m4a-audio".
Files are identified with the .m4a extension.
*/
-AVF_EXPORT AVFileType const AVFileTypeAppleM4A API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVFileType const AVFileTypeAppleM4A API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVFileType3GPP
@@ -424,7 +424,7 @@
The value of this UTI is @"public.3gpp".
Files are identified with the .3gp, .3gpp, and .sdv extensions.
*/
-AVF_EXPORT AVFileType const AVFileType3GPP API_AVAILABLE(macos(10.11), ios(4.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVFileType const AVFileType3GPP API_AVAILABLE(macos(10.11), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVFileType3GPP2
@@ -433,7 +433,7 @@
The value of this UTI is @"public.3gpp2".
Files are identified with the .3g2, .3gp2 extensions.
*/
-AVF_EXPORT AVFileType const AVFileType3GPP2 API_AVAILABLE(macos(10.11), ios(4.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVFileType const AVFileType3GPP2 API_AVAILABLE(macos(10.11), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVFileTypeCoreAudioFormat
@@ -442,7 +442,7 @@
The value of this UTI is @"com.apple.coreaudio-format".
Files are identified with the .caf extension.
*/
-AVF_EXPORT AVFileType const AVFileTypeCoreAudioFormat API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVFileType const AVFileTypeCoreAudioFormat API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVFileTypeWAVE
@@ -451,7 +451,7 @@
The value of this UTI is @"com.microsoft.waveform-audio".
Files are identified with the .wav, .wave, and .bwf extensions.
*/
-AVF_EXPORT AVFileType const AVFileTypeWAVE API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVFileType const AVFileTypeWAVE API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVFileTypeAIFF
@@ -460,7 +460,7 @@
The value of this UTI is @"public.aiff-audio".
Files are identified with the .aif and .aiff extensions.
*/
-AVF_EXPORT AVFileType const AVFileTypeAIFF API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVFileType const AVFileTypeAIFF API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVFileTypeAIFC
@@ -469,7 +469,7 @@
The value of this UTI is @"public.aifc-audio".
Files are identified with the .aifc and .cdda extensions.
*/
-AVF_EXPORT AVFileType const AVFileTypeAIFC API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVFileType const AVFileTypeAIFC API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVFileTypeAMR
@@ -478,7 +478,7 @@
The value of this UTI is @"org.3gpp.adaptive-multi-rate-audio".
Files are identified with the .amr extension.
*/
-AVF_EXPORT AVFileType const AVFileTypeAMR API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVFileType const AVFileTypeAMR API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVFileTypeMPEGLayer3
@@ -487,7 +487,7 @@
The value of this UTI is @"public.mp3".
Files are identified with the .mp3 extension.
*/
-AVF_EXPORT AVFileType const AVFileTypeMPEGLayer3 API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVFileType const AVFileTypeMPEGLayer3 API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVFileTypeSunAU
@@ -496,7 +496,7 @@
The value of this UTI is @"public.au-audio".
Files are identified with the .au and .snd extensions.
*/
-AVF_EXPORT AVFileType const AVFileTypeSunAU API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVFileType const AVFileTypeSunAU API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVFileTypeAC3
@@ -505,7 +505,7 @@
The value of this UTI is @"public.ac3-audio".
Files are identified with the .ac3 extension.
*/
-AVF_EXPORT AVFileType const AVFileTypeAC3 API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVFileType const AVFileTypeAC3 API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVFileTypeEnhancedAC3
@@ -514,7 +514,7 @@
The value of this UTI is @"public.enhanced-ac3-audio".
Files are identified with the .eac3 extension.
*/
-AVF_EXPORT AVFileType const AVFileTypeEnhancedAC3 API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0));
+AVF_EXPORT AVFileType const AVFileTypeEnhancedAC3 API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0), visionos(1.0));
/*!
@constant AVFileTypeJPEG
@@ -523,7 +523,7 @@
The value of this UTI is @"public.jpeg".
Files are identified with the .jpg or .jpeg extension.
*/
-AVF_EXPORT AVFileType const AVFileTypeJPEG API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));
+AVF_EXPORT AVFileType const AVFileTypeJPEG API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0), visionos(1.0));
/*!
@constant AVFileTypeDNG
@@ -532,7 +532,7 @@
The value of this UTI is @"com.adobe.raw-image".
Files are identified with the .dng extension.
*/
-AVF_EXPORT AVFileType const AVFileTypeDNG API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));
+AVF_EXPORT AVFileType const AVFileTypeDNG API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0), visionos(1.0));
/*!
@constant AVFileTypeHEIC
@@ -541,7 +541,7 @@
The value of this UTI is @"public.heic".
Files are identified with the .heic extension.
*/
-AVF_EXPORT AVFileType const AVFileTypeHEIC API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));
+AVF_EXPORT AVFileType const AVFileTypeHEIC API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0), visionos(1.0));
/*!
@constant AVFileTypeAVCI
@@ -550,7 +550,7 @@
The value of this UTI is @"public.avci".
Files are identified with the .avci extension.
*/
-AVF_EXPORT AVFileType const AVFileTypeAVCI API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));
+AVF_EXPORT AVFileType const AVFileTypeAVCI API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0), visionos(1.0));
/*!
@constant AVFileTypeHEIF
@@ -559,7 +559,7 @@
The value of this UTI is @"public.heif".
Files are identified with the .heif extension.
*/
-AVF_EXPORT AVFileType const AVFileTypeHEIF API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));
+AVF_EXPORT AVFileType const AVFileTypeHEIF API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0), visionos(1.0));
/*!
@constant AVFileTypeTIFF
@@ -568,7 +568,7 @@
The value of this UTI is @"public.tiff".
Files are identified with the .tiff or .tif extension.
*/
-AVF_EXPORT AVFileType const AVFileTypeTIFF API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));
+AVF_EXPORT AVFileType const AVFileTypeTIFF API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0), visionos(1.0));
/*!
@constant AVFileTypeAppleiTT
@@ -577,7 +577,7 @@
The value of this UTI is @"com.apple.itunes-timed-text".
Files are identified with the .itt extension.
*/
-AVF_EXPORT AVFileType const AVFileTypeAppleiTT API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos);
+AVF_EXPORT AVFileType const AVFileTypeAppleiTT API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos);
/*!
@constant AVFileTypeSCC
@@ -586,7 +586,7 @@
The value of this UTI is @"com.scenarist.closed-caption".
Files are identified with the .scc extension.
*/
-AVF_EXPORT AVFileType const AVFileTypeSCC API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, watchos);
+AVF_EXPORT AVFileType const AVFileTypeSCC API_AVAILABLE(macos(12.0), ios(18.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos, visionos);
/*!
@constant AVFileTypeAHAP
@@ -595,7 +595,7 @@
The value of this UTI is @"public.haptics-content".
Files are identified with the .ahap extension.
*/
-AVF_EXPORT AVFileType const AVFileTypeAHAP API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0));
+AVF_EXPORT AVFileType const AVFileTypeAHAP API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0), visionos(1.0));
/*!
@constant AVStreamingKeyDeliveryContentKeyType
@@ -603,7 +603,7 @@
@discussion
The value of this UTI is @"com.apple.streamingkeydelivery.contentkey".
*/
-AVF_EXPORT NSString * const AVStreamingKeyDeliveryContentKeyType API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0));
+AVF_EXPORT NSString * const AVStreamingKeyDeliveryContentKeyType API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0), visionos(1.0));
/*!
@constant AVStreamingKeyDeliveryPersistentContentKeyType
@@ -611,7 +611,7 @@
@discussion
The value of this UTI is @"com.apple.streamingkeydelivery.persistentcontentkey".
*/
-AVF_EXPORT NSString * const AVStreamingKeyDeliveryPersistentContentKeyType API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0));
+AVF_EXPORT NSString * const AVStreamingKeyDeliveryPersistentContentKeyType API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0), visionos(1.0));
// File type profiles
@@ -623,7 +623,7 @@
@discussion
The profile that is suitable for Apple HTTP Live Streaming.
*/
-AVF_EXPORT AVFileTypeProfile const AVFileTypeProfileMPEG4AppleHLS API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0));
+AVF_EXPORT AVFileTypeProfile const AVFileTypeProfileMPEG4AppleHLS API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0), visionos(1.0));
/*!
@constant AVFileTypeProfileMPEG4CMAFCompliant
@@ -631,7 +631,7 @@
@discussion
The profile that is compliance with CMAF format.
*/
-AVF_EXPORT AVFileTypeProfile const AVFileTypeProfileMPEG4CMAFCompliant API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0));
+AVF_EXPORT AVFileTypeProfile const AVFileTypeProfileMPEG4CMAFCompliant API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0), visionos(1.0));
#else
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVMediaSelection.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVMediaSelection.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVMediaSelection.h 2024-04-17 08:13:13
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVMediaSelection.h 2024-05-30 11:22:40
@@ -18,8 +18,7 @@
@class AVMediaSelectionInternal;
@class AVMutableMediaSelectionInternal;
-NS_SWIFT_NONSENDABLE
-API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0))
+API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0), visionos(1.0))
@interface AVMediaSelection : NSObject <NSCopying, NSMutableCopying>
{
@private
@@ -56,7 +55,7 @@
@end
NS_SWIFT_NONSENDABLE
-API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0))
+API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0), visionos(1.0))
@interface AVMutableMediaSelection : AVMediaSelection
/*!
@method selectMediaOption:inMediaSelectionGroup:
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVMediaSelectionGroup.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVMediaSelectionGroup.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVMediaSelectionGroup.h 2024-04-17 07:14:07
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVMediaSelectionGroup.h 2024-05-30 04:04:12
@@ -24,7 +24,7 @@
@class AVMediaSelectionOption;
@class AVMediaSelectionGroupInternal;
-API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0))
+API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0), visionos(1.0))
@interface AVMediaSelectionGroup : NSObject <NSCopying> {
@private
AVMediaSelectionGroupInternal *_mediaSelectionGroup;
@@ -43,7 +43,7 @@
@discussion
Can be nil, indicating that without a specific end-user selection or preference, no option in the group is intended to be selected.
*/
-@property (nonatomic, readonly, nullable) AVMediaSelectionOption *defaultOption API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0));
+@property (nonatomic, readonly, nullable) AVMediaSelectionOption *defaultOption API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@property allowsEmptySelection
@@ -94,7 +94,7 @@
An array of language identifiers in order of preference, each of which is an IETF BCP 47 (RFC 4646) language identifier. Use +[NSLocale preferredLanguages] to obtain the user's list of preferred languages.
@result An instance of NSArray containing media selection options of the specified NSArray that match a preferred language, sorted according to the order of preference of the language each matches.
*/
-+ (NSArray<AVMediaSelectionOption *> *)mediaSelectionOptionsFromArray:(NSArray<AVMediaSelectionOption *> *)mediaSelectionOptions filteredAndSortedAccordingToPreferredLanguages:(NSArray<NSString *> *)preferredLanguages API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(1.0));
++ (NSArray<AVMediaSelectionOption *> *)mediaSelectionOptionsFromArray:(NSArray<AVMediaSelectionOption *> *)mediaSelectionOptions filteredAndSortedAccordingToPreferredLanguages:(NSArray<NSString *> *)preferredLanguages API_AVAILABLE(macos(10.8), ios(6.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@method mediaSelectionOptionsFromArray:withLocale:
@@ -144,7 +144,7 @@
@class AVMediaSelectionOptionInternal;
@class AVMetadataItem;
-API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0))
+API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0), visionos(1.0))
@interface AVMediaSelectionOption : NSObject <NSCopying> {
@private
AVMediaSelectionOptionInternal *_mediaSelectionOption;
@@ -187,7 +187,7 @@
@property extendedLanguageTag
@abstract Indicates the RFC 4646 language tag associated with the option. May be nil.
*/
-@property (nonatomic, readonly, nullable) NSString *extendedLanguageTag API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
+@property (nonatomic, readonly, nullable) NSString *extendedLanguageTag API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@property locale
@@ -269,7 +269,7 @@
@discussion
May use this option's common metadata, media characteristics and locale properties in addition to the provided locale to formulate an NSString intended for display. Will only consider common metadata with the specified locale.
*/
-- (NSString *)displayNameWithLocale:(NSLocale *)locale API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
+- (NSString *)displayNameWithLocale:(NSLocale *)locale API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@property displayName
@@ -279,7 +279,7 @@
In the event that common metadata is not available in the specified locale, displayName will fall back to considering locales with the multilingual ("mul") then undetermined ("und") locale identifiers.
For a display name strictly with the specified locale use displayNameWithLocale: instead.
*/
-@property (nonatomic, readonly) NSString *displayName API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
+@property (nonatomic, readonly) NSString *displayName API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVMetadataFormat.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVMetadataFormat.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVMetadataFormat.h 2024-04-17 08:13:14
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVMetadataFormat.h 2024-05-30 04:04:13
@@ -16,328 +16,328 @@
typedef NSString * AVMetadataKey NS_EXTENSIBLE_STRING_ENUM;
// CommonMetadata
-AVF_EXPORT AVMetadataKeySpace const AVMetadataKeySpaceCommon API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVMetadataKeySpace const AVMetadataKeySpaceCommon API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
// Metadata common keys
-AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyTitle API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyCreator API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataCommonKeySubject API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyDescription API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyPublisher API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyContributor API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyCreationDate API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyLastModifiedDate API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyType API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyFormat API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyIdentifier API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataCommonKeySource API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyLanguage API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyRelation API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyLocation API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyCopyrights API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyAlbumName API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyAuthor API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyArtist API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyArtwork API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyMake API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyModel API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataCommonKeySoftware API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyAccessibilityDescription API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0));
+AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyTitle API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyCreator API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataCommonKeySubject API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyDescription API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyPublisher API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyContributor API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyCreationDate API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyLastModifiedDate API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyType API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyFormat API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyIdentifier API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataCommonKeySource API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyLanguage API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyRelation API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyLocation API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyCopyrights API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyAlbumName API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyAuthor API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyArtist API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyArtwork API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyMake API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyModel API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataCommonKeySoftware API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataCommonKeyAccessibilityDescription API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0), visionos(1.0));
// QuickTimeUserData
-AVF_EXPORT AVMetadataFormat const AVMetadataFormatQuickTimeUserData API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKeySpace const AVMetadataKeySpaceQuickTimeUserData API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVMetadataFormat const AVMetadataFormatQuickTimeUserData API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKeySpace const AVMetadataKeySpaceQuickTimeUserData API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
// QuickTimeUserData keys
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyAlbum API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyArranger API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyArtist API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyAuthor API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyChapter API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyComment API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyComposer API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyCopyright API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyCreationDate API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyDescription API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyDirector API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyDisclaimer API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyEncodedBy API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyFullName API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyGenre API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyHostComputer API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyInformation API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyKeywords API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyMake API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyModel API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyOriginalArtist API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyOriginalFormat API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyOriginalSource API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyPerformers API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyProducer API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyPublisher API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyProduct API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeySoftware API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeySpecialPlaybackRequirements API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyTrack API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyWarning API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyWriter API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyURLLink API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyLocationISO6709 API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyTrackName API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyCredits API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyPhonogramRights API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyTaggedCharacteristic API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyAccessibilityDescription API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyAlbum API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyArranger API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyArtist API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyAuthor API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyChapter API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyComment API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyComposer API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyCopyright API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyCreationDate API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyDescription API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyDirector API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyDisclaimer API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyEncodedBy API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyFullName API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyGenre API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyHostComputer API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyInformation API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyKeywords API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyMake API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyModel API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyOriginalArtist API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyOriginalFormat API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyOriginalSource API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyPerformers API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyProducer API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyPublisher API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyProduct API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeySoftware API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeySpecialPlaybackRequirements API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyTrack API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyWarning API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyWriter API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyURLLink API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyLocationISO6709 API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyTrackName API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyCredits API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyPhonogramRights API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyTaggedCharacteristic API_AVAILABLE(macos(10.8), ios(5.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeUserDataKeyAccessibilityDescription API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0), visionos(1.0));
// ISO UserData
-AVF_EXPORT AVMetadataFormat const AVMetadataFormatISOUserData API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKeySpace const AVMetadataKeySpaceISOUserData API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVMetadataFormat const AVMetadataFormatISOUserData API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKeySpace const AVMetadataKeySpaceISOUserData API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
// ISO UserData keys (includes 3GPP keys)
-AVF_EXPORT AVMetadataKey const AVMetadataISOUserDataKeyCopyright API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataISOUserDataKeyTaggedCharacteristic API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataISOUserDataKeyCopyright API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataISOUserDataKeyTaggedCharacteristic API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(1.0), visionos(1.0));
/*!
@constant AVMetadataISOUserDataKeyDate
@abstract ISO User data key for the content creation date/time.
@discussion The value is date and time, formatted according to ISO 8601, when the content was created. For clips captured by recording devices, this is typically the date and time when the clip’s recording started. When stored in AV(Mutable)MetadataItem, the value type must be either NSDate or NSString. When NSString is used, the value uses one of ISO 8601 formats such as "2016-01-11T17:31:10Z".
*/
-AVF_EXPORT AVMetadataKey const AVMetadataISOUserDataKeyDate API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0));
-AVF_EXPORT AVMetadataKey const AVMetadataISOUserDataKeyAccessibilityDescription API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0));
-AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyCopyright API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyAuthor API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyPerformer API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyGenre API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyRecordingYear API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyLocation API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyTitle API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyDescription API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyCollection API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyUserRating API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyThumbnail API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyAlbumAndTrack API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyKeywordList API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyMediaClassification API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyMediaRating API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataISOUserDataKeyDate API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataISOUserDataKeyAccessibilityDescription API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyCopyright API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyAuthor API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyPerformer API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyGenre API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyRecordingYear API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyLocation API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyTitle API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyDescription API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyCollection API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyUserRating API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyThumbnail API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyAlbumAndTrack API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyKeywordList API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyMediaClassification API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadata3GPUserDataKeyMediaRating API_AVAILABLE(macos(10.9), ios(7.0), tvos(9.0), watchos(1.0), visionos(1.0));
// QuickTimeMetadata
-AVF_EXPORT AVMetadataFormat const AVMetadataFormatQuickTimeMetadata API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKeySpace const AVMetadataKeySpaceQuickTimeMetadata API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVMetadataFormat const AVMetadataFormatQuickTimeMetadata API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKeySpace const AVMetadataKeySpaceQuickTimeMetadata API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
// QuickTimeMetadata keys. For more information, see the QuickTime File Format Specification, available as part of the Mac OS X Reference Library at http://developer.apple.com/library/mac/navigation/
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyAuthor API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyComment API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyCopyright API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyCreationDate API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyDirector API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyDisplayName API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyInformation API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyKeywords API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyProducer API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyPublisher API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyAlbum API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyArtist API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyArtwork API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyDescription API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeySoftware API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyYear API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyGenre API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyiXML API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyLocationISO6709 API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyMake API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyModel API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyArranger API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyEncodedBy API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyOriginalArtist API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyPerformer API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyComposer API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyCredits API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyPhonogramRights API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyCameraIdentifier API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyCameraFrameReadoutTime API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyTitle API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyCollectionUser API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyRatingUser API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyLocationName API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyLocationBody API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyLocationNote API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyLocationRole API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyLocationDate API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyDirectionFacing API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyDirectionMotion API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyContentIdentifier API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyAccessibilityDescription API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0));
-AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyIsMontage API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyAuthor API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyComment API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyCopyright API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyCreationDate API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyDirector API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyDisplayName API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyInformation API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyKeywords API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyProducer API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyPublisher API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyAlbum API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyArtist API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyArtwork API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyDescription API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeySoftware API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyYear API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyGenre API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyiXML API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyLocationISO6709 API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyMake API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyModel API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyArranger API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyEncodedBy API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyOriginalArtist API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyPerformer API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyComposer API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyCredits API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyPhonogramRights API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyCameraIdentifier API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyCameraFrameReadoutTime API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyTitle API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyCollectionUser API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyRatingUser API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyLocationName API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyLocationBody API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyLocationNote API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyLocationRole API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyLocationDate API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyDirectionFacing API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyDirectionMotion API_AVAILABLE(macos(10.7), ios(4.3), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyContentIdentifier API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyAccessibilityDescription API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0), visionos(1.0));
+AVF_EXPORT AVMetadataKey const AVMetadataQuickTimeMetadataKeyIsMontage API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
// iTunesMetadata
-AVF_EXPORT AVMetadataFormat const AVMetadataFormatiTunesMetadata API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKeySpace const AVMetadataKeySpaceiTunes API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
+AVF_EXPORT AVMetadataFormat const AVMetadataFormatiTunesMetadata API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
+AVF_EXPORT AVMetadataKeySpace const AVMetadataKeySpaceiTunes API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0), visionos(1.0));
// iTunesMetadata keys
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyAlbum API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyArtist API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyUserComment API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyCoverArt API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyCopyright API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyReleaseDate API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyEncodedBy API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyPredefinedGenre API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyUserGenre API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeySongName API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyTrackSubTitle API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyEncodingTool API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyComposer API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyAlbumArtist API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyAccountKind API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyAppleID API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyArtistID API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeySongID API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyDiscCompilation API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyDiscNumber API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyGenreID API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyGrouping API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyPlaylistID API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyContentRating API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyBeatsPerMin API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyTrackNumber API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyArtDirector API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyArranger API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyAuthor API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyLyrics API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyAcknowledgement API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyConductor API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyDescription API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyDirector API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyEQ API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyLinerNotes API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyRecordCompany API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyOriginalArtist API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyPhonogramRights API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyProducer API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyPerformer API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyPublisher API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeySoundEngineer API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeySoloist API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyCredits API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyThanks API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), watchos(1.0));
-AVF_EXPORT AVMetadataKey const AVMetadataiTunesMetadataKeyOnlineExtras API_AVAILABLE(
- README
- xcode13.0 Binding Status
- xcode13.1 Binding Status
- xcode13.2 Binding Status
- xcode13.3 Binding Status
- xcode13.4 Binding Status
- xcode14.0 Binding Status
- xcode14.1 Binding Status
- xcode14.2 Binding Status
- xcode14.3 Binding Status
- xcode15.0 Binding Status
- xcode15.1 Binding Status
- xcode15.3 Binding Status
- xcode15.4 Binding Status
- xcode16.0 Binding Status
- xcode16.1 Binding Status
- xcode16.2 Binding Status