AVFoundation iOS 14.5 to 15.0 API Differences

AVAsset.h
Added -[AVAsset loadTrackWithTrackID:completionHandler:]
Added -[AVAsset loadTracksWithMediaType:completionHandler:]
Added -[AVAsset loadTracksWithMediaCharacteristic:completionHandler:]
Added -[AVAsset loadMetadataForFormat:completionHandler:]
Added -[AVAsset loadChapterMetadataGroupsWithTitleLocale:containingItemsWithCommonKeys:completionHandler:]
Added -[AVAsset loadChapterMetadataGroupsBestMatchingPreferredLanguages:completionHandler:]
Added -[AVAsset loadMediaSelectionGroupForMediaCharacteristic:completionHandler:]
Added AVURLAssetURLRequestAttributionKey
Added -[AVURLAsset findCompatibleTrackForCompositionTrack:completionHandler:]
Added AVURLAsset.variants
Added -[AVFragmentedAsset loadTrackWithTrackID:completionHandler:]
Added -[AVFragmentedAsset loadTracksWithMediaType:completionHandler:]
Added -[AVFragmentedAsset loadTracksWithMediaCharacteristic:completionHandler:]
AVAssetDownloadTask.h
Added AVAssetDownloadConfiguration
Added +[AVAssetDownloadConfiguration downloadConfigurationWithAsset:title:]
Added AVAssetDownloadConfiguration.artworkData
Added AVAssetDownloadConfiguration.primaryContentConfiguration
Added AVAssetDownloadConfiguration.auxiliaryContentConfigurations
Added AVAssetDownloadConfiguration.optimizesAuxiliaryContentConfigurations
Added AVAssetDownloadContentConfiguration
Added AVAssetDownloadContentConfiguration.variantQualifiers
Added AVAssetDownloadContentConfiguration.mediaSelections
Added -[AVAssetDownloadDelegate URLSession:assetDownloadTask:willDownloadVariants:]
Added -[AVAssetDownloadURLSession assetDownloadTaskWithConfiguration:]
AVAssetExportSession.h
Added AVAssetExportPresetAppleProRes422LPCM
Added AVAssetExportPresetAppleProRes4444LPCM
AVAssetReaderOutput.h
Added AVAssetReaderOutputCaptionAdaptor (AVAssetReaderCaptionValidation)
Added AVAssetReaderOutputCaptionAdaptor.validationDelegate
AVAssetResourceLoader.h
Modified -[AVAssetResourceLoadingRequest streamingContentKeyRequestDataForApp:contentIdentifier:options:error:]
AvailabilityReplacement
FromAvailablenone
ToDeprecated-[AVContentKeyRequest makeStreamingContentKeyRequestDataForApp:contentIdentifier:options:completionHandler:]

Modified -[AVAssetResourceLoadingRequest persistentContentKeyFromKeyVendorResponse:options:error:]
AvailabilityReplacement
FromAvailablenone
ToDeprecated-[AVPersistableContentKeyRequest persistableContentKeyFromKeyVendorResponse:options:error:]

Modified AVAssetResourceLoadingRequestStreamingContentKeyRequestRequiresPersistentKey
AvailabilityReplacement
FromAvailablenone
ToDeprecated-[AVPersistableContentKeyRequest persistableContentKeyFromKeyVendorResponse:options:error:]

AVAssetTrack.h
Added -[AVAssetTrack loadSegmentForTrackTime:completionHandler:]
Added -[AVAssetTrack loadSamplePresentationTimeForTrackTime:completionHandler:]
Added -[AVAssetTrack loadMetadataForFormat:completionHandler:]
Added -[AVAssetTrack loadAssociatedTracksOfType:completionHandler:]
AVAssetVariant.h
Added AVAssetVariant
Added AVAssetVariant.peakBitRate
Added AVAssetVariant.averageBitRate
Added AVAssetVariant.videoAttributes
Added AVAssetVariant.audioAttributes
Added AVAssetVariantVideoAttributes
Added AVAssetVariantVideoAttributes.videoRange
Added AVAssetVariantVideoAttributes.codecTypes
Added AVAssetVariantVideoAttributes.presentationSize
Added AVAssetVariantVideoAttributes.nominalFrameRate
Added AVAssetVariantAudioAttributes
Added AVAssetVariantAudioAttributes.formatIDs
Added -[AVAssetVariantAudioAttributes renditionSpecificAttributesForMediaOption:]
Added AVAssetVariantAudioRenditionSpecificAttributes
Added AVAssetVariantAudioRenditionSpecificAttributes.channelCount
Added AVAssetVariantQualifier
Added +[AVAssetVariantQualifier assetVariantQualifierWithPredicate:]
Added +[AVAssetVariantQualifier assetVariantQualifierWithVariant:]
Added +[AVAssetVariantQualifier predicateForChannelCount:mediaSelectionOption:operatorType:]
Added +[AVAssetVariantQualifier predicateForPresentationWidth:operatorType:]
Added +[AVAssetVariantQualifier predicateForPresentationHeight:operatorType:]
AVAudioProcessingSettings.h
Modified AVAudioTimePitchAlgorithmLowQualityZeroLatency
AvailabilityDeprecation Message
FromAvailablenone
ToDeprecatedUse AVAudioTimePitchAlgorithmTimeDomain instead

AVCaptureAudioDataOutput.h
Modified -[AVCaptureAudioDataOutput recommendedAudioSettingsForAssetWriterWithOutputFileType:]
Declaration
From- (NSDictionary *)recommendedAudioSettingsForAssetWriterWithOutputFileType:(AVFileType)outputFileType
To- (NSDictionary<NSString *,id> *)recommendedAudioSettingsForAssetWriterWithOutputFileType:(AVFileType)outputFileType

AVCaptureDevice.h
Added AVCapturePrimaryConstituentDeviceSwitchingBehavior
Added AVCapturePrimaryConstituentDeviceSwitchingBehaviorUnsupported
Added AVCapturePrimaryConstituentDeviceSwitchingBehaviorAuto
Added AVCapturePrimaryConstituentDeviceSwitchingBehaviorRestricted
Added AVCapturePrimaryConstituentDeviceSwitchingBehaviorLocked
Added AVCapturePrimaryConstituentDeviceRestrictedSwitchingBehaviorConditions
Added AVCapturePrimaryConstituentDeviceRestrictedSwitchingBehaviorConditionNone
Added AVCapturePrimaryConstituentDeviceRestrictedSwitchingBehaviorConditionVideoZoomChanged
Added AVCapturePrimaryConstituentDeviceRestrictedSwitchingBehaviorConditionFocusModeChanged
Added AVCapturePrimaryConstituentDeviceRestrictedSwitchingBehaviorConditionExposureModeChanged
Added -[AVCaptureDevice setPrimaryConstituentDeviceSwitchingBehavior:restrictedSwitchingBehaviorConditions:]
Added AVCaptureDevice.primaryConstituentDeviceSwitchingBehavior
Added AVCaptureDevice.primaryConstituentDeviceRestrictedSwitchingBehaviorConditions
Added AVCaptureDevice.activePrimaryConstituentDeviceSwitchingBehavior
Added AVCaptureDevice.activePrimaryConstituentDeviceRestrictedSwitchingBehaviorConditions
Added AVCaptureDevice.activePrimaryConstituentDevice
Added AVCaptureDevice.supportedFallbackPrimaryConstituentDevices
Added AVCaptureDevice.fallbackPrimaryConstituentDevices
Added AVCaptureDevice.minimumFocusDistance
Added AVCaptureDevice.portraitEffectEnabled
Added AVCaptureDevice.portraitEffectActive
Added AVCaptureMicrophoneMode
Added AVCaptureMicrophoneModeStandard
Added AVCaptureMicrophoneModeWideSpectrum
Added AVCaptureMicrophoneModeVoiceIsolation
Added AVCaptureDevice.preferredMicrophoneMode
Added AVCaptureDevice.activeMicrophoneMode
Added AVCaptureSystemUserInterface
Added AVCaptureSystemUserInterfaceVideoEffects
Added AVCaptureSystemUserInterfaceMicrophoneModes
Added +[AVCaptureDevice showSystemUserInterface:]
Added AVCaptureDeviceFormat.highPhotoQualitySupported
Added AVCaptureDeviceFormat.portraitEffectSupported
Added AVCaptureDeviceFormat.videoFrameRateRangeForPortraitEffect
AVCaptureFileOutput.h
Added AVCaptureMovieFileOutput.primaryConstituentDeviceSwitchingBehaviorForRecordingEnabled
Added -[AVCaptureMovieFileOutput setPrimaryConstituentDeviceSwitchingBehaviorForRecording:restrictedSwitchingBehaviorConditions:]
Added AVCaptureMovieFileOutput.primaryConstituentDeviceSwitchingBehaviorForRecording
Added AVCaptureMovieFileOutput.primaryConstituentDeviceRestrictedSwitchingBehaviorConditionsForRecording
AVCaptureVideoDataOutput.h
Modified -[AVCaptureVideoDataOutput recommendedVideoSettingsForVideoCodecType:assetWriterOutputFileType:]
Declaration
From- (NSDictionary *)recommendedVideoSettingsForVideoCodecType:(AVVideoCodecType)videoCodecType assetWriterOutputFileType:(AVFileType)outputFileType
To- (NSDictionary<NSString *,id> *)recommendedVideoSettingsForVideoCodecType:(AVVideoCodecType)videoCodecType assetWriterOutputFileType:(AVFileType)outputFileType

AVComposition.h
Added -[AVComposition loadTrackWithTrackID:completionHandler:]
Added -[AVComposition loadTracksWithMediaType:completionHandler:]
Added -[AVComposition loadTracksWithMediaCharacteristic:completionHandler:]
Added -[AVMutableComposition loadTrackWithTrackID:completionHandler:]
Added -[AVMutableComposition loadTracksWithMediaType:completionHandler:]
Added -[AVMutableComposition loadTracksWithMediaCharacteristic:completionHandler:]
AVError.h
Added AVErrorOperationCancelled
Added AVErrorContentKeyRequestCancelled
AVMediaFormat.h
Added AVVideoRange
Added AVVideoRangeSDR
Added AVVideoRangeHLG
Added AVVideoRangePQ
AVMetadataFormat.h
Added AVMetadataQuickTimeMetadataKeyIsMontage
AVMetadataIdentifiers.h
Added AVMetadataIdentifierQuickTimeMetadataIsMontage
AVMovie.h
Added AVMovieShouldSupportAliasDataReferencesKey
Added -[AVMovie loadTrackWithTrackID:completionHandler:]
Added -[AVMovie loadTracksWithMediaType:completionHandler:]
Added -[AVMovie loadTracksWithMediaCharacteristic:completionHandler:]
Added -[AVMutableMovie loadTrackWithTrackID:completionHandler:]
Added -[AVMutableMovie loadTracksWithMediaType:completionHandler:]
Added -[AVMutableMovie loadTracksWithMediaCharacteristic:completionHandler:]
Added -[AVFragmentedMovie loadTrackWithTrackID:completionHandler:]
Added -[AVFragmentedMovie loadTracksWithMediaType:completionHandler:]
Added -[AVFragmentedMovie loadTracksWithMediaCharacteristic:completionHandler:]
AVPlaybackCoordinator.h
Added AVCoordinatedPlaybackSuspensionReason
Added AVCoordinatedPlaybackSuspensionReasonAudioSessionInterrupted
Added AVCoordinatedPlaybackSuspensionReasonStallRecovery
Added AVCoordinatedPlaybackSuspensionReasonPlayingInterstitial
Added AVCoordinatedPlaybackSuspensionReasonCoordinatedPlaybackNotPossible
Added AVCoordinatedPlaybackSuspensionReasonUserActionRequired
Added AVCoordinatedPlaybackSuspensionReasonUserIsChangingCurrentTime
Added AVCoordinatedPlaybackSuspension
Added AVCoordinatedPlaybackSuspension.reason
Added AVCoordinatedPlaybackSuspension.beginDate
Added -[AVCoordinatedPlaybackSuspension end]
Added -[AVCoordinatedPlaybackSuspension endProposingNewTime:]
Added AVPlaybackCoordinatorOtherParticipantsDidChangeNotification
Added AVPlaybackCoordinatorSuspensionReasonsDidChangeNotification
Added AVPlaybackCoordinator
Added AVPlaybackCoordinator.otherParticipants
Added AVPlaybackCoordinator.suspensionReasons
Added -[AVPlaybackCoordinator beginSuspensionForReason:]
Added -[AVPlaybackCoordinator expectedItemTimeAtHostTime:]
Added AVCoordinatedPlaybackParticipant
Added AVCoordinatedPlaybackParticipant.suspensionReasons
Added AVCoordinatedPlaybackParticipant.readyToPlay
Added AVCoordinatedPlaybackParticipant.identifier
Added -[AVPlaybackCoordinator setParticipantLimit:forWaitingOutSuspensionsWithReason:]
Added -[AVPlaybackCoordinator participantLimitForWaitingOutSuspensionsWithReason:]
Added AVPlaybackCoordinator.suspensionReasonsThatTriggerWaiting
Added AVPlaybackCoordinator.pauseSnapsToMediaTimeOfOriginator
Added AVPlayerPlaybackCoordinator
Added AVPlayerPlaybackCoordinator.player
Added AVPlayerPlaybackCoordinator.delegate
Added AVPlayerPlaybackCoordinatorDelegate
Added -[AVPlayerPlaybackCoordinatorDelegate playbackCoordinator:identifierForPlayerItem:]
Added AVDelegatingPlaybackCoordinatorRateChangeOptions
Added AVDelegatingPlaybackCoordinatorRateChangeOptionPlayImmediately
Added AVDelegatingPlaybackCoordinatorSeekOptions
Added AVDelegatingPlaybackCoordinatorSeekOptionResumeImmediately
Added AVDelegatingPlaybackCoordinator
Added -[AVDelegatingPlaybackCoordinator initWithPlaybackControlDelegate:]
Added AVDelegatingPlaybackCoordinator.playbackControlDelegate
Added -[AVDelegatingPlaybackCoordinator coordinateRateChangeToRate:options:]
Added -[AVDelegatingPlaybackCoordinator coordinateSeekToTime:options:]
Added -[AVDelegatingPlaybackCoordinator transitionToItemWithIdentifier:proposingInitialTimingBasedOnTimebase:]
Added AVDelegatingPlaybackCoordinator.currentItemIdentifier
Added -[AVDelegatingPlaybackCoordinator reapplyCurrentItemStateToPlaybackControlDelegate]
Added AVPlaybackCoordinatorPlaybackControlDelegate
Added -[AVPlaybackCoordinatorPlaybackControlDelegate playbackCoordinator:didIssuePlayCommand:completionHandler:]
Added -[AVPlaybackCoordinatorPlaybackControlDelegate playbackCoordinator:didIssuePauseCommand:completionHandler:]
Added -[AVPlaybackCoordinatorPlaybackControlDelegate playbackCoordinator:didIssueSeekCommand:completionHandler:]
Added -[AVPlaybackCoordinatorPlaybackControlDelegate playbackCoordinator:didIssueBufferingCommand:completionHandler:]
Added AVDelegatingPlaybackCoordinatorPlaybackControlCommand
Added AVDelegatingPlaybackCoordinatorPlaybackControlCommand.originator
Added AVDelegatingPlaybackCoordinatorPlaybackControlCommand.expectedCurrentItemIdentifier
Added AVDelegatingPlaybackCoordinatorPlayCommand
Added AVDelegatingPlaybackCoordinatorPlayCommand.rate
Added AVDelegatingPlaybackCoordinatorPlayCommand.itemTime
Added AVDelegatingPlaybackCoordinatorPlayCommand.hostClockTime
Added AVDelegatingPlaybackCoordinatorBufferingCommand
Added AVDelegatingPlaybackCoordinatorBufferingCommand.anticipatedPlaybackRate
Added AVDelegatingPlaybackCoordinatorBufferingCommand.completionDueDate
Added AVDelegatingPlaybackCoordinatorPauseCommand
Added AVDelegatingPlaybackCoordinatorPauseCommand.shouldBufferInAnticipationOfPlayback
Added AVDelegatingPlaybackCoordinatorPauseCommand.anticipatedPlaybackRate
Added AVDelegatingPlaybackCoordinatorSeekCommand
Added AVDelegatingPlaybackCoordinatorSeekCommand.itemTime
Added AVDelegatingPlaybackCoordinatorSeekCommand.shouldBufferInAnticipationOfPlayback
Added AVDelegatingPlaybackCoordinatorSeekCommand.anticipatedPlaybackRate
Added AVDelegatingPlaybackCoordinatorSeekCommand.completionDueDate
AVPlayer.h
Added AVPlayerRateDidChangeNotification
Added AVPlayerRateDidChangeReasonKey
Added AVPlayerRateDidChangeOriginatingParticipantKey
Added AVPlayerRateDidChangeReason
Added AVPlayerRateDidChangeReasonSetRateCalled
Added AVPlayerRateDidChangeReasonSetRateFailed
Added AVPlayerRateDidChangeReasonAudioSessionInterrupted
Added AVPlayerRateDidChangeReasonAppBackgrounded
Added AVPlayerWaitingForCoordinatedPlaybackReason
Added AVPlayer.sourceClock
Added AVPlayerAudiovisualBackgroundPlaybackPolicy
Added AVPlayerAudiovisualBackgroundPlaybackPolicyAutomatic
Added AVPlayerAudiovisualBackgroundPlaybackPolicyPauses
Added AVPlayerAudiovisualBackgroundPlaybackPolicyContinuesIfPossible
Added AVPlayer.audiovisualBackgroundPlaybackPolicy
Added AVPlayer.playbackCoordinator
Modified AVPlayer.masterClock
AvailabilityReplacement
FromAvailablenone
ToDeprecatedsourceClock

AVPlayerInterstitialEventController.h
Removed +[AVPlayerInterstitialEvent interstitialEventWithPrimaryItem:time:templateItems:restrictions:resumptionOffset:]
Removed +[AVPlayerInterstitialEvent playerInterstitialEventWithPrimaryItem:time:interstitialTemplateItems:restrictions:resumptionOffset:]
Removed +[AVPlayerInterstitialEvent interstitialEventWithPrimaryItem:date:templateItems:restrictions:resumptionOffset:]
Removed +[AVPlayerInterstitialEvent playerInterstitialEventWithPrimaryItem:date:interstitialTemplateItems:restrictions:resumptionOffset:]
Removed AVPlayerInterstitialEvent.interstitialTemplateItems
Removed AVPlayerInterstitialEventObserver
Removed +[AVPlayerInterstitialEventObserver interstitialEventObserverWithPrimaryPlayer:]
Removed +[AVPlayerInterstitialEventObserver playerInterstitialEventObserverWithPrimaryPlayer:]
Removed -[AVPlayerInterstitialEventObserver initWithPrimaryPlayer:]
Removed AVPlayerInterstitialEventObserver.primaryPlayer
Removed AVPlayerInterstitialEventObserver.interstitialPlayer
Removed AVPlayerInterstitialEventObserver.events
Removed AVPlayerInterstitialEventObserver.interstitialEvents
Removed AVPlayerInterstitialEventObserver.currentEvent
Removed AVPlayerInterstitialEventObserverEventsDidChangeNotification
Removed AVPlayerInterstitialEventObserverCurrentEventDidChangeNotification
Removed +[AVPlayerInterstitialEventController playerInterstitialEventControllerWithPrimaryPlayer:]
Removed AVPlayerInterstitialEventController.interstitialEvents
Added +[AVPlayerInterstitialEvent interstitialEventWithPrimaryItem:identifier:time:templateItems:restrictions:resumptionOffset:playoutLimit:userDefinedAttributes:]
Added +[AVPlayerInterstitialEvent interstitialEventWithPrimaryItem:identifier:date:templateItems:restrictions:resumptionOffset:playoutLimit:userDefinedAttributes:]
Added AVPlayerInterstitialEvent.identifier
Added AVPlayerInterstitialEvent.playoutLimit
Added AVPlayerInterstitialEvent.userDefinedAttributes
Added AVPlayerInterstitialEventMonitor
Added +[AVPlayerInterstitialEventMonitor interstitialEventMonitorWithPrimaryPlayer:]
Added -[AVPlayerInterstitialEventMonitor initWithPrimaryPlayer:]
Added AVPlayerInterstitialEventMonitor.primaryPlayer
Added AVPlayerInterstitialEventMonitor.interstitialPlayer
Added AVPlayerInterstitialEventMonitor.events
Added AVPlayerInterstitialEventMonitor.currentEvent
Added AVPlayerInterstitialEventMonitorEventsDidChangeNotification
Added AVPlayerInterstitialEventMonitorCurrentEventDidChangeNotification
Modified AVPlayerInterstitialEventController
Superclass
FromAVPlayerInterstitialEventObserver
ToAVPlayerInterstitialEventMonitor

AVPlayerItem.h
Added AVPlayerItemTimeJumpedOriginatingParticipantKey
Added -[AVPlayerItem copyWithZone:]
Added -[AVPlayerItem copy]
Added AVPlayerItem.preferredPeakBitRateForExpensiveNetworks
Added AVPlayerItem.preferredMaximumResolutionForExpensiveNetworks
Modified AVPlayerItemTimeJumpedNotification
Declaration
FromNSString *const AVPlayerItemTimeJumpedNotification
Toconst NSNotificationName AVPlayerItemTimeJumpedNotification

Modified AVPlayerItemAccessLogEvent.observedMaxBitrate
AvailabilityDeprecation Message
FromAvailablenone
ToDeprecatedUse observedBitrateStandardDeviation to monitor variance in network bitrate.

Modified AVPlayerItemAccessLogEvent.observedMinBitrate
AvailabilityDeprecation Message
FromAvailablenone
ToDeprecatedUse observedBitrateStandardDeviation to monitor variance in network bitrate.

AVSampleBufferAudioRenderer.h
Added AVSampleBufferAudioRenderer.allowedAudioSpatializationFormats
Added AVSampleBufferAudioRendererOutputConfigurationDidChangeNotification
AVSampleBufferGenerator.h
Added AVSampleBufferRequestDirection
Added AVSampleBufferRequestDirectionForward
Added AVSampleBufferRequestDirectionNone
Added AVSampleBufferRequestDirectionReverse
Added AVSampleBufferRequestMode
Added AVSampleBufferRequestModeImmediate
Added AVSampleBufferRequestModeScheduled
Added AVSampleBufferRequestModeOpportunistic
AVSampleCursor.h
Added AVSampleCursor (AVSampleCursorTemporalPosition)
Added AVSampleCursor.presentationTimeStamp
Added AVSampleCursor.decodeTimeStamp
Added -[AVSampleCursor comparePositionInDecodeOrderWithPositionOfCursor:]
Added -[AVSampleCursor samplesWithEarlierDecodeTimeStampsMayHaveLaterPresentationTimeStampsThanCursor:]
Added -[AVSampleCursor samplesWithLaterDecodeTimeStampsMayHaveEarlierPresentationTimeStampsThanCursor:]
Added AVSampleCursor (AVSampleCursorCurrentSampleInfo)
Added AVSampleCursor.currentSampleDuration
Added -[AVSampleCursor copyCurrentSampleFormatDescription]
Added AVSampleCursorSyncInfo
Added AVSampleCursor.currentSampleSyncInfo
Added AVSampleCursorDependencyInfo
Added AVSampleCursor.currentSampleDependencyInfo
Added AVSampleCursorAudioDependencyInfo
Added AVSampleCursor (AVSampleCursorSampleStorageInfo)
Added AVSampleCursor.currentChunkStorageURL
Added AVSampleCursorStorageRange
Added AVSampleCursor.currentChunkStorageRange
Added AVSampleCursorChunkInfo
Added AVSampleCursor.currentChunkInfo
Added AVSampleCursor.currentSampleIndexInChunk
Added AVSampleCursor.currentSampleStorageRange
AVVideoCompositing.h
Added AVVideoCompositing.canConformColorOfSourceFrames
Added AVAsynchronousVideoCompositionRequest.sourceSampleDataTrackIDs
Added -[AVAsynchronousVideoCompositionRequest sourceSampleBufferByTrackID:]
Added -[AVAsynchronousVideoCompositionRequest sourceTimedMetadataByTrackID:]
Added AVVideoCompositionInstruction.requiredSourceSampleDataTrackIDs
AVVideoComposition.h
Added AVVideoComposition.sourceSampleDataTrackIDs
Added AVMutableVideoComposition.sourceSampleDataTrackIDs
Added AVVideoCompositionInstruction.requiredSourceSampleDataTrackIDs
Added AVMutableVideoCompositionInstruction.requiredSourceSampleDataTrackIDs
Added -[AVAsset findUnusedTrackIDWithCompletionHandler:]