@class NSURL, NSMutableDictionary, AVPlayerItemInterstitialEventCollector, NSDate, NSDictionary, NSObject, AVAudioMix, AVAsset, NSMutableArray, AVCustomVideoCompositorSession, AVPlayerConnection, NSString, AVPlayerItem, NSPointerArray, AVPlayerPlaybackCoordinator, AVVideoComposition, AVMediaSelection, NSArray, AVWeakReference, NSError; @protocol AVLoggingIdentifier, AVPlayerItemDelegate, NSCopying, OS_dispatch_queue, NSObject; @interface AVPlayerItemInternal : NSObject { NSURL *URL; NSObject *ivarAccessQueue; AVWeakReference *weakReference; NSObject *figConfigurationQueue; NSObject *figPlaybackItemAccessorQueue; NSObject *figPlaybackItemSetterQueue; NSObject *seekQueue; struct OpaqueFigSimpleMutex { } *seekIDMutex; struct OpaqueVTPixelBufferAttributesMediator { } *pixelBufferAttributeMediator; struct OpaqueCMTimebase { } *proxyUnfoldedTimebase; struct OpaqueCMTimebase { } *proxyFoldedTimebase; NSArray *automaticallyLoadedAssetKeys; BOOL wasInitializedWithURL; AVAsset *asset; struct OpaqueFigPlaybackItem { } *figPlaybackItem; NSObject *stateDispatchQueue; NSArray *cachedTracks; NSArray *tracks; NSPointerArray *weakSyncLayers; NSArray *itemOutputs; NSMutableArray *itemVideoOutputs; NSMutableDictionary *itemLegibleOutputsForKeys; NSMutableDictionary *itemMetadataOutputsForKeys; BOOL suppressesVideoLayers; struct OpaqueCMTimebase { } *foldedTimebase; struct OpaqueCMTimebase { } *unfoldedFigTimebase; BOOL didBecomeReadyForInspectionOfTracks; BOOL didBecomeReadyForInspectionOfPresentationSize; BOOL didBecomeReadyForInspectionOfDuration; BOOL figAssetDidBecomeReadyForInspectionOfMediaSelectionOptions; BOOL didBecomeReadyForInspectionOfRecommendedTimeOffsetFromLive; AVAsset *assetWithFigPlaybackItem; NSArray *trackIDsForAssetWithFigPlaybackItem; BOOL needTimedMetadataNotification; BOOL didBecomeReadyForBasicInspection; id delegate; AVAudioMix *audioMix; long long status; NSError *error; struct { long long value; int timescale; unsigned int flags; long long epoch; } forwardPlaybackEndTime; struct { long long value; int timescale; unsigned int flags; long long epoch; } reversePlaybackEndTime; struct { long long value; int timescale; unsigned int flags; long long epoch; } timeToPauseBuffering; struct { long long value; int timescale; unsigned int flags; long long epoch; } timeToPausePlayback; struct { long long value; int timescale; unsigned int flags; long long epoch; } advanceTimeForOverlappedPlayback; BOOL advanceTimeForOverlappedPlaybackWasSet; BOOL snapTimeToPausePlayback; BOOL preservesTimeOffsetFromLive; struct { long long value; int timescale; unsigned int flags; long long epoch; } configuredTimeOffsetFromLive; struct { long long value; int timescale; unsigned int flags; long long epoch; } recommendedTimeOffsetFromLive; struct { long long value; int timescale; unsigned int flags; long long epoch; } duration; BOOL seekingWaitsForVideoCompositionRendering; NSArray *textStyleRules; NSArray *textHighlightArray; struct __CFString { } *initialFigTimePitchAlgorithm; BOOL canUseNetworkResourcesForLiveStreamingWhilePaused; struct { long long value; int timescale; unsigned int flags; long long epoch; } maximumForwardBufferDuration; struct { long long value; int timescale; unsigned int flags; long long epoch; } maximumTrailingBufferDuration; double preferredPeakBitRate; double preferredPeakBitRateForExpensiveNetworks; int startsOnFirstEligibleVariant; NSArray *itemCollectors; NSMutableArray *itemMetadataCollectors; AVPlayerItemInterstitialEventCollector *interstitialEventCollector; unsigned int RTCReportingFlags; NSString *reportingCategory; NSDictionary *gaplessInfo; float soundCheckVolumeNormalization; float volumeAdjustment; NSDictionary *loudnessInfo; struct opaqueMTAudioProcessingTap { } *audioProcessingTap; BOOL adjustTargetLevelWasSet; float adjustTargetLevel; BOOL adjustCompressionProfileWasSet; unsigned int adjustCompressionProfile; unsigned long long restrictions; BOOL initialLimitReadAhead; NSString *mediaKind; BOOL reversesMoreVideoFramesInMemory; BOOL reversesMoreVideoFramesInMemoryWasSet; BOOL aggressivelyCachesVideoFrames; BOOL aggressivelyCachesVideoFramesWasSet; BOOL decodesAllFramesDuringOrdinaryPlayback; BOOL decodesAllFramesDuringOrdinaryPlaybackWasSet; BOOL initialContinuesPlayingDuringPrerollForSeek; BOOL initialContinuesPlayingDuringPrerollForRateChange; BOOL usesIFrameOnlyPlaybackForHighRateScaledEditsWasSet; BOOL usesIFrameOnlyPlaybackForHighRateScaledEdits; struct { long long value; int timescale; unsigned int flags; long long epoch; } minimumIntervalForIFrameOnlyPlayback; BOOL minimumIntervalForIFrameOnlyPlaybackWasSet; float speedThresholdForIFrameOnlyPlayback; BOOL speedThresholdForIFrameOnlyPlaybackWasSet; BOOL refreshesClosedCaptionsImmediatelyAfterSeeking; NSDate *initialDate; NSDate *initialEstimatedDate; BOOL requiresAccessLog; BOOL suppressesAudioOnlyVariants; BOOL prefersOfflinePlayableVariants; BOOL autoSwitchAtmosStreamVariants; unsigned long long variantPreferences; double preferredMaximumAudioSampleRate; NSArray *imageQueueInterpolationCurve; BOOL imageQueueInterpolationCurveWasSet; BOOL blendsVideoFrames; BOOL blendsVideoFramesWasSet; BOOL appliesPerFrameHDRDisplayMetadata; BOOL appliesPerFrameHDRDisplayMetadataWasSet; NSString *videoApertureMode; BOOL usesMinimalLatencyForVideoCompositionRendering; BOOL initialAlwaysMonitorsPlayability; long long initialPlaybackLikelyToKeepUpTrigger; BOOL savesDownloadedDataToDiskWhenDone; BOOL savesDownloadedDataToDiskWhenDoneWasSet; BOOL allowProgressiveSwitchUp; BOOL allowProgressiveStartup; BOOL allowProgressiveResume; struct CGSize { double width; double height; } IFramePrefetchTargetDimensions; id AVKitData; BOOL playHapticTracks; NSString *hapticPlaybackLocality; struct CGSize { double width; double height; } preferredMaximumResolution; struct CGSize { double width; double height; } preferredMaximumResolutionForExpensiveNetworks; struct CGSize { double width; double height; } preferredMinimumResolution; BOOL canPlayFastForward; BOOL canPlayFastReverse; BOOL canPlayReverse; BOOL canPlaySlowReverse; BOOL canPlaySlowForward; BOOL canStepForward; BOOL canStepBackward; struct CGSize { double width; double height; } presentationSize; BOOL playbackBufferEmpty; BOOL playbackBufferFull; BOOL playbackLikelyToKeepUp; BOOL restrictsAutomaticMediaSelectionToAvailableOfflineOptions; BOOL nonForcedSubtitlesEnabled; BOOL hasEnabledVideo; BOOL hasVideo; BOOL hasEnabledAudio; BOOL hasEnqueuedVideoFrame; BOOL externalProtectionRequested; BOOL automaticallyHandlesInterstitialEvents; NSArray *seekableTimeRanges; double seekableTimeRangesLastModifiedTime; NSArray *loadedTimeRanges; struct { struct { long long value; int timescale; unsigned int flags; long long epoch; } start; struct { long long value; int timescale; unsigned int flags; long long epoch; } duration; } loopTimeRange; id loggingIdentifier; AVMediaSelection *currentMediaSelection; NSString *videoEnhancementMode; BOOL isRenderingSpatialAudio; AVPlayerPlaybackCoordinator *playerPlaybackCoordinator; id coordinatedPlaybackIdentifierChangeNotificationToken; BOOL timeJumpedNotificationIncludesExtendedDiagnosticPayload; NSString *serviceIdentifier; BOOL needToSeekAfterCreatingFigPlaybackItem; struct { long long value; int timescale; unsigned int flags; long long epoch; } initialTime; BOOL isInitialTimeDefault; unsigned int initialSetTimeFlags; struct { long long value; int timescale; unsigned int flags; long long epoch; } initialMinSnapTime; struct { long long value; int timescale; unsigned int flags; long long epoch; } initialMaxSnapTime; unsigned int nextSeekIDToGenerate; int pendingSeekID; id /* block */ seekCompletionHandler; AVPlayerItem *previousItem; AVPlayerItem *nextItem; AVPlayerConnection *playerConnection; BOOL initialWillNeverSeekBackwardsHint; AVVideoComposition *videoComposition; AVWeakReference *clientsOriginalVideoComposition; AVCustomVideoCompositorSession *customVideoCompositorSession; void *figVideoCompositor; AVPlayerItem *interstitialTemplate; NSString *interstitialEventID; int eqPreset; NSDictionary *rampInOutInfo; NSDictionary *audibleDRMInfo; long long initialVariantIndex; NSString *currentStableVariantID; NSMutableDictionary *mediaOptionsSelectedByClient; NSArray *timedMetadata; NSMutableArray *handlersToCallWhenReadyForEnqueueing; BOOL haveInitialSamples; BOOL haveCPEProtector; BOOL didInformObserversAboutAvailabilityOfTracks; BOOL didFireKVOForAssetForNonStreamingItem; AVAudioMix *mostRecentlyAppliedAudioMix; BOOL audioSpatializationAllowed; BOOL audioSpatializationAllowedWasSet; unsigned long long allowedAudioSpatializationFormats; BOOL allowedAudioSpatializationFormatsWasSet; AVWeakReference *playerReference; BOOL didSetAssetToAssetWithFigPlaybackItem; struct OpaqueFigCPEProtector { } *figCPEProtector; double delayPreparingItemDuration; } @end