@class AVPixelBufferAttributeMediator, NSMutableDictionary, AVApplicationStateMonitor, NSHashTable, NSDictionary, NSObject, AVPlayerMediaSelectionCriteria, AVOutputContext, NSMutableArray, AVPlayerItem, AVQueuePlayer, NSString, AVPlayerPlaybackCoordinator, AVAudioSession, NSMutableSet, NSArray, NSNumber, AVWeakReference, NSError, AVPlayerRateState; @protocol OS_dispatch_queue, AVBlockScheduler, AVLoggingIdentifier; @interface AVPlayerInternal : NSObject { BOOL fullyInitializedAndNotDeallocating; AVWeakReference *weakReference; AVPixelBufferAttributeMediator *pixelBufferAttributeMediator; NSObject<OS_dispatch_queue> *stateDispatchQueue; NSObject<OS_dispatch_queue> *figConfigurationQueue; NSObject<OS_dispatch_queue> *layerInteractionQueue; NSObject<OS_dispatch_queue> *ivarAccessQueue; NSObject<OS_dispatch_queue> *currentItemPropertyUpdateQueue; NSObject<OS_dispatch_queue> *layersQ; struct OpaqueCMTimebase { } *proxyTimebase; BOOL logPerformanceData; id didFinishSuspensionNotificationToken; id didEnterBackgroundNotificationToken; id willEnterForegroundNotificationToken; void *IAPDCallbackToken; struct OpaqueFigSimpleMutex { } *prerollIDMutex; NSObject<OS_dispatch_queue> *configurationQueue; id layerForegroundingChangeToken; id<AVBlockScheduler> KVOChangeSerializer; long long status; NSError *error; AVPlayerItem *currentItem; AVPlayerItem *lastItem; NSMutableSet *items; NSArray *queueModifications; NSMutableDictionary *pendingFigPlayerProperties; AVAudioSession *audioSession; NSDictionary *vibrationPattern; AVOutputContext *outputContext; BOOL IOwnTheFigPlayer; AVQueuePlayer *interstitialPlayer; struct OpaqueFigPlayerInterstitialCoordinator { } *interstitialEventCoordinator; NSString *playerName; long long audiovisualBackgroundPlaybackPolicy; NSMutableArray *handlersToCallWhenReadyToPlay; BOOL shouldReduceResourceUsage; long long resourceConservationLevelWhilePaused; NSString *playerRole; BOOL usesDedicatedNotificationQueueForMediaServices; struct CGSize { double width; double height; } dimensionsOfReservedVideoMemory; BOOL participatesInAudioSession; NSString *externalPlaybackVideoGravity; long long actionAtItemEnd; float volume; float userVolume; float minRateForAudioPlayback; float maxRateForAudioPlayback; BOOL autoSwitchStreamVariants; BOOL preparesItemsForPlaybackAsynchronously; BOOL allowsOutOfBandTextTrackRendering; BOOL muted; BOOL closedCaptionDisplayEnabled; BOOL appliesMediaSelectionCriteriaAutomatically; BOOL limitsBandwidthForCellularAccess; BOOL usesAudioOnlyModeForExternalPlayback; BOOL allowsPixelBufferPoolSharing; BOOL disallowsAMRAudio; BOOL disallowsHardwareAcceleratedVideoDecoder; BOOL layerDestinationIsTVOut; BOOL preventsDisplaySleepDuringVideoPlayback; BOOL preventsAutomaticBackgroundingDuringVideoPlayback; BOOL disallowsVideoLayerDisplayCompositing; BOOL allowsExternalPlayback; BOOL usesExternalPlaybackWhileExternalScreenIsActive; BOOL supportsAdvanceTimeForOverlappedPlayback; NSString *captionPipelineStrategy; NSString *audioOutputDeviceUniqueID; NSString *clientName; NSString *STSLabel; NSString *multichannelAudioStrategy; long long clientPriority; BOOL PIPModePossible; BOOL isDisplayingClosedCaptions; BOOL externalPlaybackActive; BOOL airPlayVideoActive; BOOL bufferedAirPlayActive; BOOL isConnectedToPhysicalSecondScreen; BOOL outputObscuredDueToInsufficientExternalProtection; long long externalProtectionStatus; NSString *ancillaryPerformanceInformationForDisplay; AVPlayerRateState *rateState; int rateChangeIdentifier; float defaultRate; struct CGSize { double width; double height; } currentItemPresentationSize; BOOL currentItemNonForcedSubtitlesEnabled; unsigned long long preferredVideoDecoderGPURegistryID; BOOL disallowsAutoPauseOnRouteRemovalIfNoAudio; BOOL ensuresActiveAudioSessionWhenStartingPlayback; AVApplicationStateMonitor *applicationStateMonitor; BOOL preservesAudioSessionSampleRate; BOOL silencesOtherPlaybackDuringPIP; BOOL prefersPlayingSilentlyWhenConflictingWithOtherPlayback; BOOL suppressesAudioRendering; BOOL isInterstitialPlayer; BOOL isSilencedDueToConflictWithOtherPlayback; NSNumber *mxSessionID; NSArray *videoTargets; struct __CFDictionary { } *videoTargetsForInterstitialPlayer; BOOL shouldWaitForVideoTarget; AVPlayerPlaybackCoordinator *playbackCoordinator; BOOL clientRequestedPlaybackCoordinator; NSString *backgroundPIPAuthorizationToken; BOOL rateDidChangeNotificationIncludesExtendedDiagnosticPayload; id<AVLoggingIdentifier> loggingIdentifier; NSDictionary *cachedFigMediaSelectionCriteriaProperty; NSArray *taggedBufferOutputs; NSMutableArray *videoLayers; NSMutableArray *subtitleLayers; NSMutableArray *closedCaptionLayers; NSHashTable *avPlayerLayers; NSHashTable *playerCaptionLayers; int nextPrerollIDToGenerate; int pendingPrerollID; id /* block */ prerollCompletionHandler; id currentItemSuppressesVideoLayersNotificationToken; id currentItemPreferredPixelBufferAttributesNotificationToken; struct OpaqueFigPlayer { } *figPlayer; struct OpaqueFigPlaybackItem { } *figPlaybackItemToIdentifyNextCurrentItem; BOOL needsToCreateFigPlayer; BOOL allowsLegibleFallbackForAllAudibleMediaSelections; AVPlayerMediaSelectionCriteria *cachedFigLegibleFallbackMediaSelectionCriteriaProperty; NSArray *itemsInFigPlayQueue; NSArray *expectedAssetTypes; BOOL reevaluateBackgroundPlayback; BOOL hadAssociatedOnscreenPlayerLayerWhenSuspended; BOOL suspensionExpected; BOOL rateUpdateDuringTransitionDecided; BOOL videoLayersAreAttached; struct OpaqueCMClock { } *figSourceClock; NSString *captionRenderingStrategy; NSArray *displaysUsedForPlayback; } @end