@class NUComposition, NUSurfaceRenderClient, NULivePhotoRenderClient, NUVideoRenderClient, NUAVPlayerController, NUObservatory, NSObject, NUResponse, NUPixelFormat, UIView, NSString, NUCoalescer, NUMediaView, NSArray, NUColorSpace; @protocol OS_dispatch_group, OS_dispatch_queue, NURenderStatistics; @interface NUMediaViewRenderer : NSObject { NUSurfaceRenderClient *_zoomClient; NUSurfaceRenderClient *_backfillClient; NULivePhotoRenderClient *_livePhotoClient; NUVideoRenderClient *_videoClient; NSString *_currentVideoSourceAssetIdentifier; UIView *_livePhotoView; NUCoalescer *_livePhotoUpdateCoalescer; NUCoalescer *_videoUpdateCoalescer; NUObservatory *_observatory; BOOL _canRenderLoopingVideoLive; long long _playbackMode; BOOL _muted; BOOL _didReleaseAVObjects; _Atomic int _videoRenderInFlightCount; NSObject *_renderGroup; NSObject *_renderQueue; NUResponse *_zoomRenderResponse; NUResponse *_backfillRenderResponse; struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } _lastZoomRect; double _lastZoomScale; double _lastZoomRenderTime; id _lastZoomRenderStatistics; id _lastBackfillRenderStatictics; BOOL _isPanning; BOOL _isZooming; } @property (nonatomic, getter=_isVideoEnabled, setter=_setVideoEnabled:) BOOL _videoEnabled; @property (readonly, copy, nonatomic) NSArray *previousPipelineFilters; @property (copy, nonatomic) NUComposition *composition; @property (retain, nonatomic) NUColorSpace *colorSpace; @property (retain, nonatomic) NUPixelFormat *pixelFormat; @property (readonly, weak, nonatomic) NUMediaView *mediaView; @property (nonatomic) double backingScale; @property (nonatomic) double displayMaximumEDRHeadroom; @property (nonatomic) double displayCurrentEDRHeadroom; @property (copy, nonatomic) NSArray *pipelineFilters; @property (readonly, nonatomic, getter=isZoomedToFit) BOOL zoomedToFit; @property (nonatomic) double maximumZoomScale; @property (readonly) BOOL isReady; @property (readonly, nonatomic) NUAVPlayerController *nuAVPlayerController; @property (nonatomic) unsigned long long displayType; @property (readonly, nonatomic) unsigned long long computedDisplayType; @property (nonatomic) struct CGSize { double width; double height; } overrideZoomToFitSize; @property (nonatomic) double overrideZoomScale; @property (readonly, nonatomic, getter=isVideoEnabled) BOOL videoEnabled; @property (readonly, nonatomic) long long playbackState; @property (readonly, nonatomic) struct { long long x0; int x1; unsigned int x2; long long x3; } mediaDuration; @property (readonly, nonatomic) struct { long long x0; int x1; unsigned int x2; long long x3; } currentTime; @property (readonly) NSArray *loadedTimeRanges; @property (nonatomic) double playbackRate; @property (nonatomic) long long playbackMode; @property (readonly, nonatomic) struct { long long x0; int x1; unsigned int x2; long long x3; } currentSeekTime; @property (nonatomic, getter=isMuted) BOOL muted; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (BOOL)_forceUpdateForNewVideoComposition:(id)a0 previousComposition:(id)a1 newAsset:(id)a2 previousAsset:(id)a3 isPlaying:(BOOL)a4; - (void)livePhotoView:(id)a0 willBeginPlaybackWithStyle:(long long)a1; - (void)livePhotoView:(id)a0 didEndPlaybackWithStyle:(long long)a1; - (void)play; - (void)pause; - (void)wait; - (struct CGSize { double x0; double x1; })targetSize; - (id)init; - (void)removeObserver:(id)a0; - (void)endPanning; - (void).cxx_destruct; - (void)seekToTime:(struct { long long x0; int x1; unsigned int x2; long long x3; })a0; - (void)seekToTime:(struct { long long x0; int x1; unsigned int x2; long long x3; })a0 toleranceBefore:(struct { long long x0; int x1; unsigned int x2; long long x3; })a1 toleranceAfter:(struct { long long x0; int x1; unsigned int x2; long long x3; })a2; - (void)stepByCount:(long long)a0; - (void)_releaseAVObjects; - (id)addPlaybackStateObserver:(id /* block */)a0; - (id)addPlaybackTimeObserver:(id /* block */)a0; - (id)initWithMediaView:(id)a0; - (void)seekToTime:(struct { long long x0; int x1; unsigned int x2; long long x3; })a0 exact:(BOOL)a1; - (void)seekToTime:(struct { long long x0; int x1; unsigned int x2; long long x3; })a0 exact:(BOOL)a1 forceSeek:(BOOL)a2; - (void)livePhotoViewDidBeginScrubbing:(id)a0; - (BOOL)_didReleaseAVObjects; - (void)cancelPendingRenders; - (void)livePhotoViewDidEndScrubbing:(id)a0; - (void)setVideoEnabled:(BOOL)a0 animated:(BOOL)a1; - (id)_regionPolicyForZoomTargetRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })_zoomTargetRect; - (void)_beginAnimating; - (void)_addFullExtentConstraintsForView:(id)a0; - (id)_backfillRenderRequestForComposition:(id)a0; - (id /* block */)_backfillRenderResponseHandler; - (void)_coalesceUpdateLivePhotoComposition:(id)a0; - (void)_coalesceUpdateVideoComposition:(id)a0; - (void)_endAnimating; - (double)_lastRenderDuration; - (id)_livePhotoFromResponse:(id)a0; - (void)_notifyExternalPlaybackChange:(BOOL)a0; - (void)_notifyPlaybackStateChange:(long long)a0; - (void)_notifyPlaybackTimeChange:(struct { long long x0; int x1; unsigned int x2; long long x3; })a0; - (long long)_playbackStateFromPlayerStatus:(long long)a0 rate:(float)a1; - (void)_playerStatusDidChange:(long long)a0; - (void)_renderFinishedWithGeometry:(id)a0 layer:(id)a1; - (id)_scalePolicyForVideoCompositionRender; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })_scrollBounds; - (void)_setDisplayType:(unsigned long long)a0; - (void)_setupAVPlayerController; - (double)_targetZoomScale; - (void)_tearDownAVPlayerController; - (void)_updateBackfillLayerWithLatestRenderResponse; - (void)_updateBackfillLayerWithRenderResponse:(id)a0; - (void)_updateDisplayForMediaType:(long long)a0; - (id)_updateImageLayer:(id)a0 withRenderResponse:(id)a1; - (void)_updateImageRenderForComposition:(id)a0; - (void)_updateLivePhotoComposition:(id)a0; - (void)_updateLivePhotoWithResponse:(id)a0; - (void)_updateROILayerWithLatestRenderResponse; - (void)_updateROILayerWithRenderResponse:(id)a0; - (void)_updateVideoComposition:(id)a0; - (void)_updateVideoViewLayoutWithGeometry:(id)a0; - (void)_updateVideoWithResult:(id)a0 sourceChanged:(BOOL)a1; - (id /* block */)_videoFrameImageRenderResponseHandler; - (void)_withComposition:(id)a0 visitRenderClient:(id /* block */)a1; - (id)_zoomRenderRequestForComposition:(id)a0; - (id /* block */)_zoomRenderResponseHandler; - (id)addExternalPlaybackObserver:(id /* block */)a0; - (void)beginPanning; - (void)beginZooming; - (id)cacheVideoRenderFilter; - (BOOL)canRenderVideoLive; - (struct CGPoint { double x0; double x1; })convertPoint:(struct CGPoint { double x0; double x1; })a0 fromImageToView:(id)a1; - (struct CGPoint { double x0; double x1; })convertPoint:(struct CGPoint { double x0; double x1; })a0 toImageFromView:(id)a1; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })convertRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 fromImageToView:(id)a1; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })convertRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 toImageFromView:(id)a1; - (void)endZooming; - (id)newRenderRequestForComposition:(id)a0 scalePolicy:(id)a1 regionPolicy:(id)a2; - (BOOL)pipelineFilersHaveChanged; - (id)renderClient; - (void)seekToTime:(struct { long long x0; int x1; unsigned int x2; long long x3; })a0 toleranceBefore:(struct { long long x0; int x1; unsigned int x2; long long x3; })a1 toleranceAfter:(struct { long long x0; int x1; unsigned int x2; long long x3; })a2 forceSeek:(BOOL)a3; - (void)updateComposition:(id)a0; @end