AVFoundation iOS 15.5 to 16.0 API Differences

AVAsset.h
Added AVURLAssetHTTPUserAgentKey
Added AVURLAssetPrimarySessionIdentifierKey
Added AVURLAsset.httpSessionIdentifier
Modified -[AVAsset trackWithTrackID:]
Availability
FromAvailable
ToDeprecated

Modified -[AVAsset tracksWithMediaType:]
Availability
FromAvailable
ToDeprecated

Modified -[AVAsset tracksWithMediaCharacteristic:]
Availability
FromAvailable
ToDeprecated

Modified -[AVAsset metadataForFormat:]
Availability
FromAvailable
ToDeprecated

Modified -[AVAsset chapterMetadataGroupsWithTitleLocale:containingItemsWithCommonKeys:]
Availability
FromAvailable
ToDeprecated

Modified -[AVAsset chapterMetadataGroupsBestMatchingPreferredLanguages:]
Availability
FromAvailable
ToDeprecated

Modified -[AVAsset mediaSelectionGroupForMediaCharacteristic:]
Availability
FromAvailable
ToDeprecated

Modified -[AVURLAsset compatibleTrackForCompositionTrack:]
Availability
FromAvailable
ToDeprecated

Modified -[AVFragmentedAsset trackWithTrackID:]
Availability
FromAvailable
ToDeprecated

Modified -[AVFragmentedAsset tracksWithMediaType:]
Availability
FromAvailable
ToDeprecated

Modified -[AVFragmentedAsset tracksWithMediaCharacteristic:]
Availability
FromAvailable
ToDeprecated

AVAssetExportSession.h
Added AVAssetTrackGroupOutputHandling
Added AVAssetTrackGroupOutputHandlingNone
Added AVAssetTrackGroupOutputHandlingPreserveAlternateTracks
Added AVAssetTrackGroupOutputHandlingDefaultPolicy
Added AVAssetExportSession.audioTrackGroupHandling
Modified +[AVAssetExportSession exportPresetsCompatibleWithAsset:]
Availability
FromAvailable
ToDeprecated

AVAssetImageGenerator.h
Added -[AVAssetImageGenerator generateCGImageAsynchronouslyForTime:completionHandler:]
Modified -[AVAssetImageGenerator copyCGImageAtTime:actualTime:error:]
Availability
FromAvailable
ToDeprecated

AVAssetPlaybackAssistant.h
Added AVAssetPlaybackConfigurationOption
Added AVAssetPlaybackConfigurationOptionStereoVideo
Added AVAssetPlaybackConfigurationOptionStereoMultiviewVideo
Added AVAssetPlaybackAssistant
Added +[AVAssetPlaybackAssistant assetPlaybackAssistantWithAsset:]
Added -[AVAssetPlaybackAssistant loadPlaybackConfigurationOptionsWithCompletionHandler:]
AVAssetReaderOutput.h
Removed AVAssetReaderOutputCaptionAdaptor (AVAssetReaderCaptionValidation)
Removed AVAssetReaderOutputCaptionAdaptor.validationDelegate
AVAssetResourceLoader.h
Added AVAssetResourceLoadingContentInformationRequest.entireLengthAvailableOnDemand
AVAssetTrack.h
Added AVAssetTrack.canProvideSampleCursors
Added -[AVAssetTrack makeSampleCursorWithPresentationTimeStamp:]
Added -[AVAssetTrack makeSampleCursorAtFirstSampleInDecodeOrder]
Added -[AVAssetTrack makeSampleCursorAtLastSampleInDecodeOrder]
Modified -[AVAssetTrack segmentForTrackTime:]
Availability
FromAvailable
ToDeprecated

Modified -[AVAssetTrack samplePresentationTimeForTrackTime:]
Availability
FromAvailable
ToDeprecated

Modified -[AVAssetTrack metadataForFormat:]
Availability
FromAvailable
ToDeprecated

Modified -[AVAssetTrack associatedTracksOfType:]
Availability
FromAvailable
ToDeprecated

AVBase.h
Added #def AVF_DEPRECATED_FOR_SWIFT_ONLY
Added #def AVF_DEPLOYING_TO_2022_RELEASES_AND_LATER
AVCaptureDevice.h
Added AVCaptureDevice.continuityCamera
Added AVCaptureDevice.companionDeskViewCamera
Added AVCaptureDevice.studioLightEnabled
Added AVCaptureDevice.studioLightActive
Added AVCaptureDeviceFormat.studioLightSupported
Added AVCaptureDeviceFormat.videoFrameRateRangeForStudioLight
Modified AVCaptureDeviceSubjectAreaDidChangeNotification
Declaration
From__WATCHOS_PROHIBITED NSString *const AVCaptureDeviceSubjectAreaDidChangeNotification
ToAPI_UNAVAILABLE(watchos) NSString *const AVCaptureDeviceSubjectAreaDidChangeNotification

Modified AVCaptureDeviceTypeBuiltInTelephotoCamera
Declaration
From__WATCHOS_PROHIBITED const AVCaptureDeviceType AVCaptureDeviceTypeBuiltInTelephotoCamera
ToAPI_UNAVAILABLE(watchos) const AVCaptureDeviceType AVCaptureDeviceTypeBuiltInTelephotoCamera

Modified AVCaptureDeviceTypeBuiltInDualCamera
Declaration
From__WATCHOS_PROHIBITED const AVCaptureDeviceType AVCaptureDeviceTypeBuiltInDualCamera
ToAPI_UNAVAILABLE(watchos) const AVCaptureDeviceType AVCaptureDeviceTypeBuiltInDualCamera

Modified AVCaptureDeviceTypeBuiltInTrueDepthCamera
Declaration
From__WATCHOS_PROHIBITED const AVCaptureDeviceType AVCaptureDeviceTypeBuiltInTrueDepthCamera
ToAPI_UNAVAILABLE(watchos) const AVCaptureDeviceType AVCaptureDeviceTypeBuiltInTrueDepthCamera

AVCapturePhotoOutput.h
Modified AVCapturePhotoOutput.supportedFlashModes
Declaration
From@property (nonatomic, readonly, nonnull) NSArray<NSNumber *> *supportedFlashModes
To@property (nonatomic, readonly, nonnull) NSArray<NSNumber *> *supportedFlashModes

AVCaptureSession.h
Added AVCaptureSession.multitaskingCameraAccessSupported
Added AVCaptureSession.multitaskingCameraAccessEnabled
Added AVCaptureSession.hardwareCost
Modified AVCaptureSessionInterruptionReasonKey
Declaration
From__WATCHOS_PROHIBITED NSString *const AVCaptureSessionInterruptionReasonKey
ToAPI_UNAVAILABLE(watchos) NSString *const AVCaptureSessionInterruptionReasonKey

Modified AVCaptureSessionInterruptionSystemPressureStateKey
Declaration
From__WATCHOS_PROHIBITED NSString *const AVCaptureSessionInterruptionSystemPressureStateKey
ToAPI_UNAVAILABLE(watchos) NSString *const AVCaptureSessionInterruptionSystemPressureStateKey

AVCaptureSessionPreset.h
Modified AVCaptureSessionPresetInputPriority
Declaration
From__WATCHOS_PROHIBITED const AVCaptureSessionPreset AVCaptureSessionPresetInputPriority
ToAPI_UNAVAILABLE(watchos) const AVCaptureSessionPreset AVCaptureSessionPresetInputPriority

AVComposition.h
Added -[AVMutableComposition insertTimeRange:ofAsset:atTime:completionHandler:]
Added -[AVComposition metadataForFormat:]
Added -[AVComposition chapterMetadataGroupsWithTitleLocale:containingItemsWithCommonKeys:]
Added -[AVComposition chapterMetadataGroupsBestMatchingPreferredLanguages:]
Added -[AVComposition mediaSelectionGroupForMediaCharacteristic:]
Added -[AVComposition unusedTrackID]
Modified -[AVMutableComposition insertTimeRange:ofAsset:atTime:error:]
Availability
FromAvailable
ToDeprecated

AVCompositionTrack.h
Added -[AVCompositionTrack hasMediaCharacteristic:]
Added -[AVCompositionTrack samplePresentationTimeForTrackTime:]
Added -[AVCompositionTrack metadataForFormat:]
Added -[AVCompositionTrack associatedTracksOfType:]
AVError.h
Added AVErrorInvalidSampleCursor
Added AVErrorFailedToLoadSampleData
Added AVErrorAirPlayReceiverTemporarilyUnavailable
AVGeometry.h
Added NSValue (NSValueCMVideoDimensionsExtensions)
Added +[NSValue valueWithCMVideoDimensions:]
Added NSValue.CMVideoDimensionsValue
AVMovie.h
Added -[AVMutableMovie metadataForFormat:]
Added -[AVMutableMovie chapterMetadataGroupsWithTitleLocale:containingItemsWithCommonKeys:]
Added -[AVMutableMovie chapterMetadataGroupsBestMatchingPreferredLanguages:]
Added -[AVMutableMovie mediaSelectionGroupForMediaCharacteristic:]
Added -[AVMutableMovie unusedTrackID]
Modified -[AVMovie trackWithTrackID:]
Availability
FromAvailable
ToDeprecated

Modified -[AVMovie tracksWithMediaType:]
Availability
FromAvailable
ToDeprecated

Modified -[AVMovie tracksWithMediaCharacteristic:]
Availability
FromAvailable
ToDeprecated

Modified -[AVFragmentedMovie trackWithTrackID:]
Availability
FromAvailable
ToDeprecated

Modified -[AVFragmentedMovie tracksWithMediaType:]
Availability
FromAvailable
ToDeprecated

Modified -[AVFragmentedMovie tracksWithMediaCharacteristic:]
AvailabilityDeprecation Message
FromAvailablenone
ToDeprecatedloadTracksWithMediaCharacteristic:completionHandler:

AVMovieTrack.h
Added -[AVMutableMovieTrack hasMediaCharacteristic:]
Added -[AVMutableMovieTrack segmentForTrackTime:]
Added -[AVMutableMovieTrack samplePresentationTimeForTrackTime:]
Added -[AVMutableMovieTrack metadataForFormat:]
Added -[AVMutableMovieTrack associatedTracksOfType:]
AVPlayer.h
Added AVPlayer.defaultRate
AVPlayerInterstitialEventController.h
Added AVPlayerInterstitialEventCue
Added AVPlayerInterstitialEventNoCue
Added AVPlayerInterstitialEventJoinCue
Added AVPlayerInterstitialEventLeaveCue
Added +[AVPlayerInterstitialEvent interstitialEventWithPrimaryItem:time:]
Added +[AVPlayerInterstitialEvent interstitialEventWithPrimaryItem:date:]
Added AVPlayerInterstitialEvent.alignsStartWithPrimarySegmentBoundary
Added AVPlayerInterstitialEvent.alignsResumptionWithPrimarySegmentBoundary
Added AVPlayerInterstitialEvent.cue
Added AVPlayerInterstitialEvent.willPlayOnce
Modified AVPlayerInterstitialEvent
Protocols
Fromnone
ToNSCopying

Modified +[AVPlayerInterstitialEvent interstitialEventWithPrimaryItem:identifier:time:templateItems:restrictions:resumptionOffset:playoutLimit:userDefinedAttributes:]
Availability
FromAvailable
ToDeprecated

Modified +[AVPlayerInterstitialEvent interstitialEventWithPrimaryItem:identifier:date:templateItems:restrictions:resumptionOffset:playoutLimit:userDefinedAttributes:]
Availability
FromAvailable
ToDeprecated

Modified AVPlayerInterstitialEvent.primaryItem
Declaration
From@property (nonatomic, readonly, weak, nullable) AVPlayerItem *primaryItem
To@property (nonatomic, readwrite, weak, nullable) AVPlayerItem *primaryItem

Modified AVPlayerInterstitialEvent.identifier
Declaration
From@property (nonatomic, readonly, nonnull) NSString *identifier
To@property (nonatomic, readwrite, copy, nonnull) NSString *identifier

Modified AVPlayerInterstitialEvent.time
Declaration
From@property (nonatomic, readonly) CMTime time
To@property (nonatomic, readwrite) CMTime time

Modified AVPlayerInterstitialEvent.date
Declaration
From@property (nonatomic, readonly, nullable) NSDate *date
To@property (nonatomic, readwrite, copy, nullable) NSDate *date

Modified AVPlayerInterstitialEvent.templateItems
Declaration
From@property (nonatomic, readonly, nonnull) NSArray<AVPlayerItem *> *templateItems
To@property (nonatomic, readwrite, copy, nonnull) NSArray<AVPlayerItem *> *templateItems

Modified AVPlayerInterstitialEvent.restrictions
Declaration
From@property (nonatomic, readonly) AVPlayerInterstitialEventRestrictions restrictions
To@property (nonatomic, readwrite) AVPlayerInterstitialEventRestrictions restrictions

Modified AVPlayerInterstitialEvent.resumptionOffset
Declaration
From@property (nonatomic, readonly) CMTime resumptionOffset
To@property (nonatomic, readwrite) CMTime resumptionOffset

Modified AVPlayerInterstitialEvent.playoutLimit
Declaration
From@property (nonatomic, readonly) CMTime playoutLimit
To@property (nonatomic, readwrite) CMTime playoutLimit

Modified AVPlayerInterstitialEvent.userDefinedAttributes
Declaration
From@property (nonatomic, readonly, nonnull) NSDictionary *userDefinedAttributes
To@property (nonatomic, readwrite, copy, nonnull) NSDictionary *userDefinedAttributes

Modified AVPlayerInterstitialEventMonitor.events
Declaration
From@property (readonly, nonnull) NSArray<AVPlayerInterstitialEvent *> *events
To@property (readonly, copy, nonnull) NSArray<AVPlayerInterstitialEvent *> *events

AVPlayerItem.h
Modified AVPlayerItem.videoComposition
Declaration
From@property (nonatomic, copy, nullable) AVVideoComposition *videoComposition
To@property (nonatomic, copy, nullable) AVVideoComposition *videoComposition

Modified AVPlayerItem.customVideoCompositor
Declaration
From@property (nonatomic, readonly, nullable) id<AVVideoCompositing> customVideoCompositor
To@property (nonatomic, readonly, nullable) id<AVVideoCompositing> customVideoCompositor

AVRouteDetector.h
Added AVRouteDetector.detectsCustomRoutes
AVSampleBufferGenerator.h
Added AVSampleBufferGenerator
Added -[AVSampleBufferGenerator initWithAsset:timebase:]
Added -[AVSampleBufferGenerator createSampleBufferForRequest:error:]
Added -[AVSampleBufferGenerator makeBatch]
Added -[AVSampleBufferGenerator createSampleBufferForRequest:addingToBatch:error:]
Added +[AVSampleBufferGenerator notifyOfDataReadyForSampleBuffer:completionHandler:]
Added AVSampleBufferRequest
Added -[AVSampleBufferRequest initWithStartCursor:]
Added AVSampleBufferRequest.startCursor
Added AVSampleBufferRequest.direction
Added AVSampleBufferRequest.limitCursor
Added AVSampleBufferRequest.preferredMinSampleCount
Added AVSampleBufferRequest.maxSampleCount
Added AVSampleBufferRequest.mode
Added AVSampleBufferRequest.overrideTime
Added AVSampleBufferGeneratorBatch
Added -[AVSampleBufferGeneratorBatch makeDataReadyWithCompletionHandler:]
Added -[AVSampleBufferGeneratorBatch cancel]
AVSampleCursor.h
Removed AVSampleCursor (AVSampleCursorTemporalPosition)
Removed AVSampleCursor (AVSampleCursorCurrentSampleInfo)
Removed AVSampleCursor (AVSampleCursorSampleStorageInfo)
Added AVSampleCursor
Added -[AVSampleCursor stepInDecodeOrderByCount:]
Added -[AVSampleCursor stepInPresentationOrderByCount:]
Added -[AVSampleCursor stepByDecodeTime:wasPinned:]
Added -[AVSampleCursor stepByPresentationTime:wasPinned:]
Added AVSampleCursor.currentSampleDependencyAttachments
Added AVSampleCursor.currentSampleAudioDependencyInfo
Added AVSampleCursor.samplesRequiredForDecoderRefresh
AVSynchronizedLayer.h
Modified AVSynchronizedLayer.playerItem
Declaration
From@property (nonatomic, retain, nullable) AVPlayerItem *playerItem
To@property (nonatomic, retain, nullable) AVPlayerItem *playerItem

AVVideoComposition.h
Added +[AVVideoComposition videoCompositionWithPropertiesOfAsset:completionHandler:]
Added +[AVVideoComposition videoCompositionWithAsset:applyingCIFiltersWithHandler:completionHandler:]
Added +[AVMutableVideoComposition videoCompositionWithPropertiesOfAsset:completionHandler:]
Added +[AVMutableVideoComposition videoCompositionWithPropertiesOfAsset:prototypeInstruction:completionHandler:]
Added +[AVMutableVideoComposition videoCompositionWithAsset:applyingCIFiltersWithHandler:completionHandler:]
Added -[AVVideoComposition determineValidityForAsset:timeRange:validationDelegate:completionHandler:]
Modified +[AVVideoComposition videoCompositionWithPropertiesOfAsset:]
Availability
FromAvailable
ToDeprecated

Modified +[AVVideoComposition videoCompositionWithAsset:applyingCIFiltersWithHandler:]
Availability
FromAvailable
ToDeprecated

Modified +[AVMutableVideoComposition videoCompositionWithPropertiesOfAsset:]
Availability
FromAvailable
ToDeprecated

Modified +[AVMutableVideoComposition videoCompositionWithPropertiesOfAsset:prototypeInstruction:]
Availability
FromAvailable
ToDeprecated

Modified +[AVMutableVideoComposition videoCompositionWithAsset:applyingCIFiltersWithHandler:]
Availability
FromAvailable
ToDeprecated

Modified -[AVAsset unusedTrackID]
Availability
FromAvailable
ToDeprecated

Modified -[AVVideoComposition isValidForAsset:timeRange:validationDelegate:]
Availability
FromAvailable
ToDeprecated

AVVideoSettings.h
Added AVVideoTransferFunction_Linear