luxlabs header browser preview


@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 <NUMediaPlayer> {
    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<OS_dispatch_group> *_renderGroup;
    NSObject<OS_dispatch_queue> *_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<NURenderStatistics> _lastZoomRenderStatistics;
    id<NURenderStatistics> _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