Skip to content

AVFoundation iOS xcode27.0 b3

Alex Soto edited this page Jul 9, 2026 · 2 revisions

#AVFoundation.framework https://github.com/dotnet/macios/pull/25986

diff -ruN /Applications/Xcode_27.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWritingPlanner.h /Applications/Xcode_27.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWritingPlanner.h
--- /Applications/Xcode_27.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWritingPlanner.h	2026-06-13 01:14:44
+++ /Applications/Xcode_27.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWritingPlanner.h	2026-06-27 17:33:37
@@ -140,7 +140,7 @@
 /// - Parameter minimumSegmentDuration: The client selected minimum duration for the segments.
 /// - Parameter minimumSegmentFrameCount: The minimum number of source frames in a segment.
 /// 
-/// - Returns: Array of AVPlannedVideoSegmentConfigurations.
+/// - Returns: Array of AVPlannedVideoSegmentConfiguration objects, each element specifying the configuration of a planned video segment, ordered in output PTS order
 + (NSArray <AVPlannedVideoSegmentConfiguration *> *)segmentBoundaryRecommendationsForVideoAVAssetTrack:(AVAssetTrack *)videoAssetTrack minimumSegmentDuration:(CMTime)minimumSegmentDuration minimumSegmentFrameCount:(NSInteger)minimumSegmentFrameCount
 	NS_SWIFT_NAME(segmentBoundaryRecommendations(forVideoTrack:minimumSegmentDuration:minimumSegmentFrameCount:));
 
@@ -263,7 +263,7 @@
 /// The media type of this track.
 @property (readonly) AVMediaType mediaType;
 
-/// An array of AVPlannedSegmentConfigurations, each element specifying the configuration of a planned segment, ordered in output PTS order.
+/// Array of AVPlannedSegmentConfigurations, each element specifying the configuration of a planned segment, ordered in output PTS order.
 @property (readonly, copy) NSArray<AVPlannedSegmentConfiguration *> *segmentConfigurations;
 
 /// Returns an instance of AVAssetTrackPlan
diff -ruN /Applications/Xcode_27.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h /Applications/Xcode_27.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h
--- /Applications/Xcode_27.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h	2026-06-18 01:34:24
+++ /Applications/Xcode_27.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h	2026-06-28 02:26:49
@@ -4,7 +4,7 @@
  
     Framework:  AVFoundation
  
-    Copyright 2010-2023 Apple Inc. All rights reserved.
+    Copyright 2010-2026 Apple Inc. All rights reserved.
 */
 
 #import <AVFoundation/AVBase.h>
@@ -3914,6 +3914,8 @@
 @property(nonatomic, readonly) AVCaptureCameraLensSmudgeDetectionStatus cameraLensSmudgeDetectionStatus API_AVAILABLE(macos(26.0), ios(26.0), macCatalyst(26.0), tvos(26.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
 
 @end
+
+
 
 #pragma mark - AVCaptureDeviceInputSource
 
diff -ruN /Applications/Xcode_27.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureSession.h /Applications/Xcode_27.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureSession.h
--- /Applications/Xcode_27.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureSession.h	2026-06-18 00:51:50
+++ /Applications/Xcode_27.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureSession.h	2026-06-28 02:29:09
@@ -1272,6 +1272,7 @@
  */
 @property(nonatomic, getter=isCameraIntrinsicMatrixDeliveryEnabled) BOOL cameraIntrinsicMatrixDeliveryEnabled API_AVAILABLE(ios(11.0), macCatalyst(14.0), tvos(17.0)) API_UNAVAILABLE(macos, visionos);
 
+
 @end
 
 
diff -ruN /Applications/Xcode_27.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVMetadataObject.h /Applications/Xcode_27.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVMetadataObject.h
--- /Applications/Xcode_27.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVMetadataObject.h	2026-06-18 01:37:31
+++ /Applications/Xcode_27.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVMetadataObject.h	2026-06-27 17:35:01
@@ -4,7 +4,7 @@
  
     Framework:  AVFoundation
  
-    Copyright 2012-2022 Apple Inc. All rights reserved.
+    Copyright 2012-2026 Apple Inc. All rights reserved.
 */
 
 #import <AVFoundation/AVBase.h>
@@ -93,6 +93,7 @@
 ///
 /// When presented with a collection of ``AVMetadataObject`` instances of different types, you may use the objects' ``groupID`` to combine them into groups. For example, a human body and face belonging to the same person have the same ``groupID``.  If an object's ``groupID`` property is set to -1, it is invalid. When set to a value of >=0, it is unique across all object groups.
 @property(readonly) NSInteger groupID API_AVAILABLE(macos(26.0), ios(26.0), macCatalyst(26.0), tvos(26.0)) API_UNAVAILABLE(visionos, watchos);
+
 
 /// A unique identifier for each detected object type (face, body, hands, heads and salient objects) in a collection.
 ///
diff -ruN /Applications/Xcode_27.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayer.h /Applications/Xcode_27.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayer.h
--- /Applications/Xcode_27.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayer.h	2026-06-13 01:14:46
+++ /Applications/Xcode_27.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayer.h	2026-06-27 23:59:15
@@ -206,19 +206,19 @@
 
 /// Indicates that the player is waiting for appropriate playback buffer conditions before starting playback
 /// 
-/// The player is waiting for playback because automaticallyWaitToMinimizeStalling is YES and playback at the specified rate would likely cause the playback buffer to become empty before playback completes. Playback will resume when 1) playback at the specified rate will likely complete without a stall or 2) the playback buffer becomes full, meaning no forther buffering of media data is possible.
+/// The player is waiting for playback because automaticallyWaitsToMinimizeStalling is YES and playback at the specified rate would likely cause the playback buffer to become empty before playback completes. Playback will resume when 1) playback at the specified rate will likely complete without a stall or 2) the playback buffer becomes full, meaning no forther buffering of media data is possible.
 /// When the value of automaticallyWaitsToMinimizeStalling is NO, timeControlStatus cannot become AVPlayerTimeControlStatusWaitingToPlayAtSpecifiedRate for this reason.
 AVF_EXPORT AVPlayerWaitingReason const AVPlayerWaitingToMinimizeStallsReason API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0), visionos(1.0));
 
 /// Indicates that the player is monitoring the playback buffer fill rate to determine if playback is likely to complete without interruptions.
 /// 
-/// The player is waiting for playback because automaticallyWaitToMinimizeStalling is YES and it has not yet determined if starting playback at the specified rate would likely cause the buffer to become empty. When the brief initial monitoring period is over, either playback will begin or the value of reasonForWaitingToPlayAtSpecifiedRate will switch to AVPlayerWaitingToMinimizeStallsReason.
+/// The player is waiting for playback because automaticallyWaitsToMinimizeStalling is YES and it has not yet determined if starting playback at the specified rate would likely cause the buffer to become empty. When the brief initial monitoring period is over, either playback will begin or the value of reasonForWaitingToPlayAtSpecifiedRate will switch to AVPlayerWaitingToMinimizeStallsReason.
 /// Recommended practice is not to show UI indicating the waiting state to the user while the value of reasonForWaitingToPlayAtSpecifiedRate is AVPlayerWaitingWhileEvaluatingBufferingRateReason.
 AVF_EXPORT AVPlayerWaitingReason const AVPlayerWaitingWhileEvaluatingBufferingRateReason API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0), visionos(1.0));
 
 /// Indicates that the AVPlayer is waiting because its currentItem is nil
 /// 
-/// The player is waiting for playback because automaticallyWaitToMinimizeStalling is YES and the value of currentItem is nil. When an item becomes available, either because of a call to -replaceCurrentItemWithPlayerItem: or -insertItem: afterItem:, playback will begin or the value of reasonForWaitingToPlay will change.
+/// The player is waiting for playback because automaticallyWaitsToMinimizeStalling is YES and the value of currentItem is nil. When an item becomes available, either because of a call to -replaceCurrentItemWithPlayerItem: or -insertItem: afterItem:, playback will begin or the value of reasonForWaitingToPlay will change.
 AVF_EXPORT AVPlayerWaitingReason const AVPlayerWaitingWithNoItemToPlayReason API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0), visionos(1.0));
 
 /// Indicates that the player is waiting for another participant connected through its AVPlayerPlaybackCoordinator.
diff -ruN /Applications/Xcode_27.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVProVideoStorage.h /Applications/Xcode_27.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVProVideoStorage.h
--- /Applications/Xcode_27.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVProVideoStorage.h	2026-06-18 01:34:25
+++ /Applications/Xcode_27.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVProVideoStorage.h	2026-06-27 17:32:53
@@ -11,6 +11,18 @@
 
 NS_ASSUME_NONNULL_BEGIN
 
+/// A reason that Pro Video Storage may be busy.
+typedef NSString * AVProVideoStorageBusyReason NS_TYPED_ENUM NS_SWIFT_NAME(AVProVideoStorage.BusyReason) API_AVAILABLE(macos(27.0), ios(27.0), macCatalyst(27.0), tvos(27.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+
+/// Pro Video Storage is being created or resized.
+AVF_EXPORT AVProVideoStorageBusyReason const AVProVideoStorageBusyReasonAdjustingCapacity API_AVAILABLE(macos(27.0), ios(27.0), macCatalyst(27.0), tvos(27.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+
+/// Pro Video Storage capacity is being replenished.
+AVF_EXPORT AVProVideoStorageBusyReason const AVProVideoStorageBusyReasonReplenishing API_AVAILABLE(macos(27.0), ios(27.0), macCatalyst(27.0), tvos(27.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+
+/// A capture to Pro Video Storage is in progress.
+AVF_EXPORT AVProVideoStorageBusyReason const AVProVideoStorageBusyReasonCapturing API_AVAILABLE(macos(27.0), ios(27.0), macCatalyst(27.0), tvos(27.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+
 #pragma mark - AVProVideoStorage
 
 /// A class to track and manage pre-allocated storage for high data rate video capture.
@@ -49,12 +61,25 @@
 /// - Returns: 0 if Pro Video Storage is not configured or -1 if there was a failure while extracting information from it.
 @property(nonatomic, readonly) NSInteger remainingCapacity;
 
-/// Indicates whether Pro Video Storage is currently busy.
+/// Performs a best-effort attempt to restore Pro Video Storage to the initial capacity specified by the user in Settings app.
 ///
-/// A value of `YES` indicates that Pro Video Storage is currently being modified (e.g., during capacity changes or file creation/deletion).
-/// While this is `YES`, if a client tries to start a video capture an exception will be raised.
+/// If there is enough readily available free space on the file system, Pro Video Storage will be resized to ``initialCapacity``.
+/// Otherwise, this method will attempt to resize it near that value.
+///
+/// Pro Video Storage is busy when the replenish operation starts and is no longer busy when the completion handler is called.
+///
+/// - Parameter completionHandler:
+/// The completion handler is called on an arbitrary dispatch queue when the replenish operation finishes.
+/// The `remainingCapacity` parameter reflects the new size in bytes, which may be less than ``initialCapacity``.
+/// If the operation fails, the `error` parameter is set and `remainingCapacity` is unchanged or -1 if there was a failure retrieving the value.
+- (void)replenishCapacityWithCompletionHandler:(nullable void (^)(NSInteger remainingCapacity, NSError * _Nullable error))completionHandler;
+
+/// Whether Pro Video Storage is busy and the associated reasons.
+///
+/// A non-empty set indicates that Pro Video Storage is currently being modified.
+/// While this is non-empty, starting a video capture will fail with an error.
 /// This property is key-value observable.
-@property(nonatomic, readonly, getter=isBusy) BOOL busy;
+@property(nonatomic, readonly) NSSet<AVProVideoStorageBusyReason> *busyReasons;
 
 @end
 

Clone this wiki locally