@class NSError, NSString, AVMediaDataRequester, NSArray, AVSampleBufferDisplayLayer, AVApplicationStateMonitor, AVSampleBufferRenderSynchronizer, AVContentKeySession, NSObject, NSMutableArray; @protocol OS_dispatch_queue; @interface AVSampleBufferVideoRenderer : NSObject { struct OpaqueFigVideoQueue { } *_videoQueue; BOOL _outputObscured; long long _status; NSError *_error; AVSampleBufferDisplayLayer *_weakDisplayLayer; BOOL _containsDisplayLayer; struct __CFArray { } *_figVideoTargets; struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } _previousSourceRect; AVApplicationStateMonitor *_applicationStateMonitor; BOOL _preventsDisplaySleepDuringVideoPlayback; BOOL _preventsAutomaticBackgroundingDuringVideoPlayback; BOOL _requiresFlushToResumeDecoding; BOOL _disallowsVideoLayerDisplayCompositing; BOOL _hasEverEnqueued; BOOL _isRequestingMediaData; AVMediaDataRequester *_mediaDataRequester; BOOL _aboveHighWaterLevel; BOOL _createVideoQueueFailed; NSObject *_serialQueue; NSObject *_videoQueueQueue; NSObject *_layerQueue; AVSampleBufferRenderSynchronizer *_weakReferenceToSynchronizer; BOOL _addedToSynchronizer; BOOL _controlTimebaseSetByUserIsInUse; struct OpaqueCMTimebase { } *_controlTimebaseSetByUser; struct OpaqueCMTimebase { } *_readOnlyVideoQueueTimebase; struct OpaqueCMTimebase { } *_readOnlyRenderingTimebase; NSMutableArray *_videoOutputs; NSObject *_flushCallbackListQueue; NSObject *_flushCallbackQueue; NSMutableArray *_flushCallbacks; NSObject *_queueForProtectingPrerollCompleteCallback; id /* block */ _pendingPrerollCompleteCallback; int _pendingPrerollRequestID; NSObject *_queueForCallingPrerollCompleteCallback; int _upcomingPTSExpectation; struct { long long value; int timescale; unsigned int flags; long long epoch; } _minimumUpcomingPTS; AVContentKeySession *_weakContentKeySession; struct opaqueCMFormatDescription { } *_lastFormatDescription; struct OpaqueFigCPECryptor { } *_lastCryptor; NSString *_STSLabel; id _didFinishSuspensionNotificationToken; } @property (readonly) BOOL outputObscuredDueToInsufficientExternalProtection; @property (nonatomic) BOOL preventsCapture; @property (nonatomic) BOOL preventsDisplaySleepDuringVideoPlayback; @property (nonatomic) BOOL preventsAutomaticBackgroundingDuringVideoPlayback; @property (getter=_disallowsVideoLayerDisplayCompositing, setter=_setDisallowsVideoLayerDisplayCompositing:) BOOL disallowsVideoLayerDisplayCompositing; @property (readonly, nonatomic) NSArray *outputs; @property (copy, nonatomic, getter=_STSLabel) NSString *STSLabel; @property (readonly) long long status; @property (readonly) NSError *error; @property (readonly) BOOL requiresFlushToResumeDecoding; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; @property (readonly, retain) struct OpaqueCMTimebase { } *timebase; @property (readonly, getter=isReadyForMoreMediaData) BOOL readyForMoreMediaData; @property (readonly, nonatomic) BOOL hasSufficientMediaDataForReliablePlaybackStart; + (BOOL)automaticallyNotifiesObserversForKey:(id)a0; + (void)initialize; - (void)requestMediaDataWhenReadyOnQueue:(id)a0 usingBlock:(id /* block */)a1; - (void)stopRequestingMediaData; - (id)init; - (void)dealloc; - (void)flush; - (void)addOutput:(id)a0; - (void)setToneMapToStandardDynamicRange:(BOOL)a0; - (void)removeOutput:(id)a0; - (void).cxx_destruct; - (id)_displayLayer; - (BOOL)_setSynchronizerTimebase:(struct OpaqueCMTimebase { } *)a0 error:(id *)a1; - (struct OpaqueFigVideoQueue { } *)_copyVideoQueue; - (void)_updateVideoTargetsOnVideoQueue; - (void)addVideoTarget:(struct OpaqueFigVideoTarget { } *)a0; - (struct OpaqueCMTimebase { } *)controlTimebase; - (id)_STSLabelPublisher; - (void)_addFigVideoQueueListeners; - (void)_callOldPrerollCompletionHandlerWithSuccess:(BOOL)a0 andSetNewPrerollCompletionHandler:(id /* block */)a1 forRequestID:(int)a2; - (void)_completedDecodeForPrerollForRequestID:(int)a0; - (struct { struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } x0; struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } x1; })_computeSampleBufferEnqueueingInfoForSampleBuffer:(struct opaqueCMSampleBuffer { } *)a0; - (int)_createVideoQueue:(struct OpaqueFigVideoQueue **)a0 errorStep:(id *)a1; - (BOOL)_createVideoQueueFailed; - (void)_didFinishSuspension:(id)a0; - (int)_enqueueSingleSampleBuffer:(struct opaqueCMSampleBuffer { } *)a0 bufferEnqueueingInfo:(struct { struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } x0; struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } x1; } *)a1; - (void)_flushComplete; - (BOOL)_hasEverEnqueued; - (int)_initializeTimebases; - (BOOL)_isCreateVideoQueueErrorRetryable:(int)a0; - (struct OpaqueCMTimebase { } *)_readOnlyVideoQueueTimebase; - (void)_refreshAboveHighWaterLevel; - (void)_removeFigVideoQueueListeners; - (void)_resetStatusWithOSStatus:(int)a0; - (int)_setContentLayerOnFigVideoQueue:(struct OpaqueFigVideoQueue { } *)a0; - (void)_setCreateVideoQueueFailedWithOSStatus:(int)a0; - (void)_setOutputObscuredDueToInsufficientExternalProtection:(BOOL)a0; - (void)_setRequiresFlushToResumeDecoding:(BOOL)a0; - (void)_setStatus:(long long)a0 error:(id)a1; - (BOOL)_setUpcomingPresentationTimeExpectations:(int)a0 minimumPresentationTime:(struct { long long x0; int x1; unsigned int x2; long long x3; })a1; - (id)_statusString:(long long)a0; - (void)_updateVideoOutputs; - (void)addSampleBufferDisplayLayer:(id)a0; - (int)attachToContentKeySession:(id)a0 contentKeyBoss:(struct CMBaseObject { } *)a1 failedSinceAlreadyAttachedToAnotherSession:(BOOL *)a2; - (BOOL)attachedToExternalContentKeySession; - (id)contentKeySession; - (struct __CVBuffer { } *)copyDisplayedPixelBuffer; - (void)copyFigSampleBufferAudioRenderer:(struct OpaqueFigSampleBufferAudioRenderer **)a0; - (int)createVideoQueue:(struct OpaqueFigVideoQueue **)a0; - (id)currentFigVideoQueueFactory; - (void)enqueueSampleBuffer:(struct opaqueCMSampleBuffer { } *)a0; - (void)enqueueSampleBuffer:(struct opaqueCMSampleBuffer { } *)a0 bufferEnqueueingInfo:(struct { struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } x0; struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } x1; } *)a1; - (void)expectMinimumUpcomingSampleBufferPresentationTime:(struct { long long x0; int x1; unsigned int x2; long long x3; })a0; - (void)expectMonotonicallyIncreasingUpcomingSampleBufferPresentationTimes; - (void)flushAndRemoveImage; - (void)flushWithRemovalOfDisplayedImage:(BOOL)a0 completionHandler:(id /* block */)a1; - (void)prerollDecodeWithCompletionHandler:(id /* block */)a0; - (void)resetUpcomingSampleBufferPresentationTimeExpectations; - (void)setContentKeySession:(id)a0; - (void)setControlTimebase:(struct OpaqueCMTimebase { } *)a0; - (void)setDisplayLayerVisibility:(BOOL)a0; - (BOOL)setRenderSynchronizer:(id)a0 error:(id *)a1; - (id)videoPerformanceMetrics; @end