Skip to content

AVFoundation macOS xcode16.2 b2

Rolf Bjarne Kvinge edited this page Nov 28, 2024 · 2 revisions

#AVFoundation.framework https://github.com/xamarin/xamarin-macios/pull/21709

diff -ruN /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetVariant.h /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetVariant.h
--- /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetVariant.h	2024-10-09 00:09:57
+++ /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetVariant.h	2024-10-24 17:17:56
@@ -205,34 +205,34 @@
  @method 		assetVariantQualifierWithPredicate:
  @abstract		Returns a qualifer for a predicate.
  @param			predicate
-				The variant predicate.
+				The variant predicate. Must be a valid, non-nil NSPredicate.
  */
-+ (instancetype)assetVariantQualifierWithPredicate:(NSPredicate *)predicate;
++ (instancetype)assetVariantQualifierWithPredicate:(nonnull NSPredicate *)predicate;
 
 /*!
  @method 		assetVariantQualifierWithVariant:
  @abstract		Returns a qualifer for a particular asset variant.
  @param			variant
-				A variant obtained from the -[AVAsset variants] or -[AVAssetDownloadConfiguration playableVariants].
+				A variant obtained from the -[AVAsset variants] or -[AVAssetDownloadConfiguration playableVariants]. Must be a valid, non-nil AVAssetVariant.
  */
-+ (instancetype)assetVariantQualifierWithVariant:(AVAssetVariant *)variant;
++ (instancetype)assetVariantQualifierWithVariant:(nonnull 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.
+				AVAssetVariant keyPath. Allowed keyPath values are peakBitRate, averageBitRate, videoAttributes.presentationSize. Must be a valid, non-nil NSString.
  */
 
-+ (instancetype)assetVariantQualifierForMinimumValueInKeyPath:(NSString *)keyPath API_UNAVAILABLE(macos, ios, tvos, watchos, visionos);
++ (instancetype)assetVariantQualifierForMinimumValueInKeyPath:(nonnull 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.
+				AVAssetVariant keyPath. Allowed keyPath values are peakBitRate, averageBitRate, videoAttributes.presentationSize. Must be a valid, non-nil NSString.
  */
-+ (instancetype)assetVariantQualifierForMaximumValueInKeyPath:(NSString *)keyPath API_UNAVAILABLE(macos, ios, tvos, watchos, visionos);
++ (instancetype)assetVariantQualifierForMaximumValueInKeyPath:(nonnull NSString *)keyPath API_UNAVAILABLE(macos, ios, tvos, watchos, visionos);
 
 /*!
  @method		predicateForChannelCount:mediaSelectionOption:operatorType:
diff -ruN /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureFileOutput.h /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureFileOutput.h
--- /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureFileOutput.h	2024-10-09 23:42:58
+++ /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureFileOutput.h	2024-10-29 23:42:28
@@ -227,6 +227,29 @@
 - (void)captureOutput:(AVCaptureFileOutput *)output didStartRecordingToOutputFileAtURL:(NSURL *)fileURL fromConnections:(NSArray<AVCaptureConnection *> *)connections;
 
 /*!
+ @method captureOutput:didStartRecordingToOutputFileAtURL:startPTS:fromConnections:
+ @abstract
+    Informs the delegate when the output has started writing to a file.
+ 
+ @param output
+    The capture file output that started writing the file.
+ @param fileURL
+    The file URL of the file that is being written.
+ @param startPTS
+    The timestamp of the first buffer written to the file, synced with AVCaptureSession.synchronizationClock
+ @param connections
+    An array of AVCaptureConnection objects attached to the file output that provided the data that is being written to the file.
+ 
+ @discussion
+    This method is called when the file output has started writing data to a file. If an error condition prevents any data from being written, this method may not be called. captureOutput:willFinishRecordingToOutputFileAtURL:fromConnections:error: and captureOutput:didFinishRecordingToOutputFileAtURL:fromConnections:error: will always be called, even if no data is written.
+ 
+    If this method is implemented, the alternative delegate callback -captureOutput:didStartRecordingToOutputFileAtURL:fromConnections will not be called.
+ 
+    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 didStartRecordingToOutputFileAtURL:(NSURL *)fileURL startPTS:(CMTime)startPTS fromConnections:(NSArray<AVCaptureConnection *> *)connections NS_SWIFT_NAME(fileOutput(_:didStartRecordingTo:startPTS:from:)) API_AVAILABLE(macos(15.2), ios(18.2), macCatalyst(18.2), tvos(18.2)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+
+/*!
  @method captureOutput:didPauseRecordingToOutputFileAtURL:fromConnections:
  @abstract
     Called whenever the output is recording to a file and successfully pauses the recording at the request of the client.
Clone this wiki locally