@class NSUUID, NSString, NSURL, AVSampleBufferRenderSynchronizer, CALayer, APRKStreamRecorder, AVSampleBufferAudioRenderer, NSData, NSObject, APRKMediaPlayer, NSDictionary; @protocol AirPlayReceiverUIDelegate, APRKStreamRendererSampleBufferDelegate, OS_dispatch_source, OS_dispatch_queue, APRKStreamRendererDelegate; @interface APRKStreamRenderer : NSObject { struct OpaqueFigCFWeakReferenceHolder { } *_backingUIControllerWeakRef; BOOL _isStopping; BOOL _isWiredLink; BOOL _isP2PWiFiSession; BOOL _canRecord; BOOL _useCALayerForMirroring; BOOL _deferLayerRendering; BOOL _shouldRecordFrames; BOOL _isAudioActive; BOOL _mirroringNeedsKeyFrame; BOOL _isMirroringVideoStreamPaused; unsigned int _screenSessionCount; unsigned int _videoSessionCount; unsigned int _audioSessionCount; unsigned int _currentVideoSessionID; struct { long long value; int timescale; unsigned int flags; long long epoch; } _startTime; AVSampleBufferRenderSynchronizer *_synchronizer; AVSampleBufferAudioRenderer *_audioRenderer; CALayer *_mirroringLayer; CALayer *_debugLayer; APRKStreamRecorder *_recorder; APRKMediaPlayer *_player; struct OpaqueFigVideoQueue { } *_figVideoQueue; NSObject *_rendererVideoBufferQueue; NSObject *_rendererAudioBufferQueue; NSObject *_rendererStateUpdateQueue; NSObject *_delegateQueue; struct CGSize { double width; double height; } _presentationVideoSize; struct { int width; int height; } _lastVideoSampleBufferSize; struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } _sourceRect; struct opaqueCMFormatDescription { } *_formatDesc; struct { long long value; int timescale; unsigned int flags; long long epoch; } _lastPTS; unsigned int _transform; struct OpaqueAPSNetworkAddress { } *_sessionReceiverAddr; struct OpaqueAPSNetworkClock { } *_receiverNetworkClock; NSObject *_recorderKeyFrameTimer; BOOL _recorderNeedsKeyFrame; NSURL *_currentRecordingURL; unsigned long long _currentVideoPlaybackVersion; id _airPlayReceiverUIDelegate; id _sampleBufferDelegate; NSData *_ensembleInfo; NSDictionary *_demoDeviceInfo; } @property (readonly, copy, nonatomic) NSUUID *uniqueID; @property (readonly, copy, nonatomic) NSString *managedClientName; @property (weak, nonatomic) id delegate; @property (readonly, nonatomic) BOOL canRecord; @property (readonly, nonatomic) BOOL isRecording; @property (nonatomic) BOOL isPaused; @property (nonatomic) BOOL isMirroringVideoStreamPaused; @property (nonatomic) BOOL isMirroringAudioStreamPaused; @property (readonly, nonatomic) struct CGSize { double x0; double x1; } videoFrameSize; @property (nonatomic) BOOL autoRotateLayerFollowingClientRotation; @property (readonly, nonatomic) unsigned long long streamRendererMode; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (BOOL)stopRecording; - (id)player; - (void)dealloc; - (void)stop; - (void)observeValueForKeyPath:(id)a0 ofObject:(id)a1 change:(id)a2 context:(void *)a3; - (void).cxx_destruct; - (BOOL)isActive; - (id)sampleBufferDelegate; - (id)mediaPlayer; - (void)setCanRecord:(BOOL)a0; - (id)mirroringLayer; - (int)_enqueueVideoFrameForRendering:(struct opaqueCMSampleBuffer { } *)a0; - (void)setIsWiredLink:(BOOL)a0; - (id)HUDLayer; - (float)mirroringVolume; - (id)videoQueuePerformanceDictionary; - (void)_cleanupInternalPlayer; - (void)_cleanupPreviousRecordingIfExisting; - (int)_enqueueSampleBufferForRecording:(struct opaqueCMSampleBuffer { } *)a0 isAudioSBuf:(BOOL)a1; - (short)_ensureFigVideoQueue; - (void)_ensureInternalPlayer; - (BOOL)_isRotatedTransform:(unsigned long long)a0; - (BOOL)_performStartRecordingWithOutputURL:(id)a0; - (BOOL)_performStopRecording; - (void)_performUIControllerActionWithBlock:(id /* block */)a0; - (BOOL)_receiverSupportsMirroring; - (BOOL)_sampleBufferRepresentsKeyFrame:(struct opaqueCMSampleBuffer { } *)a0; - (BOOL)_shouldFlip:(unsigned int)a0; - (void)_updateStreamingMode; - (unsigned int)audioSessionCount; - (id)backingMediaPlayer; - (unsigned long long)currentVideoPlaybackVersion; - (unsigned int)currentVideoSessionID; - (id)demoDeviceInfo; - (id)ensembleInfo; - (id)initWithUniqueID:(id)a0 clientName:(id)a1 UIController:(struct OpaqueAPReceiverUIController { } *)a2 useCALayerForMirroring:(BOOL)a3; - (BOOL)isP2PWiFi; - (BOOL)isWiredLink; - (void)makeNowPlayingRenderer; - (void)mediaPlayer:(id)a0 didGenerateFPSSecureStopRecordPayload:(id)a1; - (void)mediaPlayer:(id)a0 wantsToPostNotification:(id)a1 withPayload:(id)a2; - (void)mediaPlayer:(id)a0 wantsToSendUpstreamMessageWithDictionary:(id)a1; - (void)mediaPlayerNeedsTLSInfo:(id)a0; - (void)postVideoV1EventWithType:(const char *)a0 params:(struct __CFDictionary { } *)a1; - (BOOL)processAudioSampleBuffer:(struct opaqueCMSampleBuffer { } *)a0; - (void)processHidePasscodePromptRequest; - (void)processSenderUIEvent:(id)a0; - (void)processShowPasscodePromptRequest:(id)a0; - (void)processStartAudioSessionRequestWithSessionID:(unsigned int)a0 isScreenAudio:(BOOL)a1; - (void)processStartScreenPresentationWithSessionID:(unsigned int)a0; - (void)processStartVideoPlaybackRequestWithWithSessionID:(unsigned int)a0 version:(unsigned long long)a1; - (void)processStopAudioSessionRequestWithSessionID:(unsigned int)a0; - (void)processStopScreenPresentationWithSessionID:(unsigned int)a0; - (void)processStopVideoPlaybackRequestWithSessionID:(unsigned int)a0; - (BOOL)processVideoSampleBuffer:(struct opaqueCMSampleBuffer { } *)a0; - (unsigned int)screenSessionCount; - (void)setDeferLayerRendering:(BOOL)a0; - (void)setDemoDeviceInfo:(id)a0; - (void)setEnsembleInfo:(id)a0; - (void)setIsP2PWiFi:(BOOL)a0; - (void)setMirroringVolume:(float)a0; - (void)setReceiverNetworkClock:(struct OpaqueAPSNetworkClock { } *)a0; - (void)setSampleBufferDelegate:(id)a0; - (void)setSessionReceiverAddress:(struct OpaqueAPSNetworkAddress { } *)a0; - (void)setVideoV1Delegate:(id)a0 withDelegateQueue:(id)a1; - (BOOL)startRecordingWithOutputURL:(id)a0; - (void)updateDisplayInfo; - (unsigned int)videoSessionCount; @end