@class NSDictionary, UIMovieScrubber, PLSlalomRegionEditor, PLProgressStack, NSMutableArray, NSString, PLPhotoBakedThumbnails, UIImage, UIActivityIndicatorView, NSTimer, PLVideoPosterFrameView, NSArray, NSMutableDictionary, PLMoviePlayerController, PFVideoAdjustments, PLVideoEditingOverlayView, NSObject, NSLock, UIView, PFVideoAVObjectBuilder, AVAssetExportSession, PLPhotoTileViewController, UIImageView, PLManagedAsset, NSURL; @protocol PLVideoViewDelegate, OS_dispatch_queue, PLVideoOverlayButton; @interface PLVideoView : UIView <UIMovieScrubberDelegate, UIMovieScrubberDataSource, PLMoviePlayerControllerDelegate, PLSlalomRegionEditorDelegate> { PLManagedAsset *_videoCameraImage; NSString *_pathToOriginalVideo; NSURL *_videoURL; PLPhotoTileViewController *_imageTile; UIView *_videoOverlayBackgroundView; PLVideoEditingOverlayView *_trimMessageView; UIImage *_posterFrameImage; UIImage *_snapshotImage; long long _scaleMode; UIView *_scrubberTitleView; NSTimer *_scrubberUpdateTimer; NSDictionary *_thumbnailOptionsDict; struct CGSize { double width; double height; } _thumbnailSize; PLPhotoBakedThumbnails *_bakedLandscapeThumbnails; PLPhotoBakedThumbnails *_bakedPortraitThumbnails; AVAssetExportSession *_exportSession; double _remakerStartTime; double _remakerEndTime; NSString *_trimmedPath; NSString *_videoPathAfterTrim; NSTimer *_trimProgressTimer; PLManagedAsset *_trimmedVideoClip; float _progress; PLMoviePlayerController *_moviePlayer; id<PLVideoViewDelegate> _delegate; double _maximumTrimLength; double _lastScrubbedValue; double _lastActualValue; double _duration; double _cachedCurrentPlaybackTime; NSArray *_imageGenerators; NSLock *_thumbnailReqlock; NSObject<OS_dispatch_queue> *_thumbnailReqQueue; AVAssetExportSession *_airplayExportSession; BOOL _isAirPlay; unsigned char _showsPlayButton : 1; unsigned char _showsScrubber : 1; unsigned char _canEdit : 1; unsigned char _loadMediaImmediately : 1; unsigned char _scrubberIsSubview : 1; unsigned char _viewWillAppear : 1; unsigned char _didLayout : 1; unsigned char _wasPlayingBeforeScrub : 1; unsigned char _playFromBeginning : 1; unsigned char _needsReloadScrubberThumbnails : 1; unsigned char _playing : 1; unsigned char _editing : 1; unsigned char _disableEditAfterTrim : 1; unsigned char _scrubbing : 1; unsigned char _scrubbingToRight : 1; unsigned char _deleteOriginalFile : 1; unsigned char _passthroughTrimming : 1; unsigned char _preparingMoviePlayer : 1; unsigned char _preparedMoviePlayer : 1; unsigned char _isMoviePlayerActive : 1; unsigned char _moviePlayerIsReady : 1; unsigned char _moviePlayerIsReadyForDisplay : 1; unsigned char _moviePlayerDidBuffer : 1; unsigned char _showingOverlay : 1; unsigned char _showingScrubber : 1; unsigned char _showScrubberWhenMovieIsReady : 1; unsigned char _playbackDidBegin : 1; unsigned char _loadScrubberThumbnails : 1; unsigned char _videoIsLandscape : 1; unsigned char _canCreateMetadata : 1; unsigned char _createPreviewPosterFrame : 1; unsigned char _isTrimming : 1; unsigned char _wasTrimmedInPlace : 1; unsigned char _remakingFailed : 1; NSMutableArray *_summaryThumbnailRequestTimestamps; NSMutableArray *_detailThumbnailRequestTimestamps; UIMovieScrubber *_scrubber; PLSlalomRegionEditor *_slalomRegionEditor; NSMutableDictionary *_cachedThumbnails; NSArray *_landscapeSummaryThumbnailTimestamps; NSArray *_portraitSummaryThumbnailTimestamps; UIActivityIndicatorView *_spinner; UIActivityIndicatorView *_shadowSpinner; UIView<PLVideoOverlayButton> *_videoOverlayPlayButton; BOOL _useLandscapeCache; double _videoStreamingStartTime; } @property (readonly, retain, nonatomic) NSString *_pathForVideoPreviewFile; @property (readonly, retain, nonatomic) NSString *_pathForPrebakedLandscapeScrubberThumbnails; @property (readonly, retain, nonatomic) NSString *_pathForPrebakedPortraitScrubberThumbnails; @property (readonly, nonatomic) BOOL _mediaIsPlayable; @property (readonly, nonatomic) BOOL _didSetPhotoData; @property (nonatomic) BOOL _didInsertMoviePlayerView; @property (nonatomic, setter=_setDidEditSlalom:) BOOL _didEditSlalom; @property (readonly, nonatomic) PFVideoAVObjectBuilder *_videoAVObjectBuilder; @property (readonly, nonatomic) BOOL _isFetchingVideo; @property (nonatomic, setter=_setLocalVideoUnavailable:) BOOL _localVideoUnavailable; @property (readonly, nonatomic) long long _expectedNotificationsCount; @property (readonly, nonatomic) PFVideoAdjustments *_adjustmentsToCommit; @property (nonatomic, setter=_setCanAttemptFetchingVideoDerivative:) BOOL _canAttemptFetchingVideoDerivative; @property (nonatomic, setter=_setAttemptFetchingVideoDerivative:) BOOL _attemptFetchingVideoDerivative; @property (retain, nonatomic) PLProgressStack *trimProgressStack; @property (readonly, nonatomic) BOOL _slalomRegionEditorCreatedForScrubber; @property (readonly, retain, nonatomic) NSString *pathForVideoFile; @property (nonatomic) id<PLVideoViewDelegate> delegate; @property (nonatomic) PLPhotoTileViewController *imageTile; @property (readonly, nonatomic) PLManagedAsset *videoCameraImage; @property (retain, nonatomic) PLManagedAsset *trimmedVideoClip; @property (nonatomic) BOOL allowSlalomEditor; @property (readonly, nonatomic) UIView *scrubberBackgroundView; @property (readonly, nonatomic) UIImage *posterFrameImage; @property (readonly, retain, nonatomic) PLVideoPosterFrameView *posterFrameView; @property (readonly, nonatomic) double duration; @property (nonatomic, getter=isEditing) BOOL editing; @property (readonly, nonatomic) double startTime; @property (readonly, nonatomic) double endTime; @property (readonly, nonatomic) NSString *videoPathAfterTrim; @property (readonly, nonatomic) UIImageView *previewImageView; @property (nonatomic) BOOL showsPlayOverlay; @property (nonatomic) BOOL showsScrubber; @property (nonatomic) BOOL prepareMoviePlayerForScrubberAutomatically; @property (nonatomic) BOOL loadMediaImmediately; @property (nonatomic) BOOL shouldPlayVideoWhenViewAppears; @property (nonatomic) BOOL canEdit; @property (nonatomic) BOOL scrubberIsSubview; @property (nonatomic) double scrubberWidth; @property (nonatomic) double currentTime; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (id)_dequeueOverlayPlayButton; + (void)_enqueueOverlayPlayButton:(id)a0; + (id)videoViewForVideoFileAtURL:(id)a0; - (void)willMoveToSuperview:(id)a0; - (void)play; - (void)pause; - (void)_setDuration:(double)a0; - (void)viewWillAppear:(BOOL)a0; - (void)dealloc; - (void)_reset; - (void)forceStop; - (void)setProgress:(id)a0; - (void)setEditing:(BOOL)a0 animated:(BOOL)a1; - (void)applicationWillResignActive; - (void)didMoveToSuperview; - (void)viewDidAppear; - (void)_networkReachabilityDidChange:(id)a0; - (void)setFrame:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0; - (void)stop; - (BOOL)isPlaying; - (id)hitTest:(struct CGPoint { double x0; double x1; })a0 withEvent:(id)a1; - (void)applicationDidEnterBackground; - (void)touchesEnded:(id)a0 withEvent:(id)a1; - (void)_deleteFileAtPath:(id)a0; - (void)layoutSubviews; - (void)_screenDidConnect:(id)a0; - (void)_screenDidDisconnect:(id)a0; - (void)movieScrubber:(id)a0 editingEndValueDidChange:(double)a1; - (void)movieScrubber:(id)a0 editingStartValueDidChange:(double)a1; - (id)movieScrubber:(id)a0 evenlySpacedTimestamps:(int)a1 startingAt:(id)a2 endingAt:(id)a3; - (void)movieScrubber:(id)a0 requestThumbnailImageForTimestamp:(id)a1; - (void)movieScrubber:(id)a0 requestThumbnailImageForTimestamp:(id)a1 isSummaryThumbnail:(BOOL)a2; - (void)movieScrubber:(id)a0 valueDidChange:(double)a1; - (void)movieScrubber:(id)a0 widthDelta:(float)a1 originXDelta:(float)a2; - (void)movieScrubber:(id)a0 willZoomToMinimumValue:(double)a1 maximumValue:(double)a2; - (void)movieScrubberDidBeginAnimatingZoom:(id)a0; - (void)movieScrubberDidBeginEditing:(id)a0; - (void)movieScrubberDidBeginScrubbing:(id)a0 withHandle:(int)a1; - (void)movieScrubberDidCancelEditing:(id)a0; - (void)movieScrubberDidEndAnimatingZoom:(id)a0; - (void)movieScrubberDidEndScrubbing:(id)a0 withHandle:(int)a1; - (void)movieScrubberDidFinishRequestingThumbnails:(id)a0; - (double)movieScrubberDuration:(id)a0; - (void)movieScrubberEditingAnimationFinished:(id)a0; - (double)movieScrubberThumbnailAspectRatio:(id)a0; - (void)movieScrubberWillBeginEditing:(id)a0; - (void)movieScrubberWillBeginRequestingThumbnails:(id)a0; - (void)setMaximumTrimLength:(double)a0; - (void)viewDidDisappear; - (id)_moviePlayer; - (id)_pathForOriginalFile; - (BOOL)isTrimming; - (void)handleDoubleTap; - (BOOL)_canAccessVideo; - (void)_commitPendingAdjustmentsUpdate; - (double)_thumbnailTimeFromScrubberTime:(double)a0; - (void)_addThumbnailRequestForTimestamp:(id)a0 isSummaryThumbnail:(BOOL)a1; - (void)updateScaleMode; - (void)_removeScrubber; - (void)_serviceImageGenerationRequests; - (void)hideTrimMessage; - (id)_assetForVideoPath:(id)a0; - (id)_assetForVideoURL:(id)a0; - (BOOL)_canAirPlayCurrentVideo; - (BOOL)_canCreateMetadata; - (BOOL)_canEditDuration:(double)a0; - (BOOL)_canHandleAdjustmentData:(id)a0; - (BOOL)_canPlayCloudSharedStreamedVideoWithLocalVideo; - (void)_cancelAirplayExportSession; - (void)_cancelDelayedCommitPendingAdjustmentsUpdate; - (void)_cancelRemaking:(id)a0; - (void)_clearImageGenerators; - (void)_commitPendingAdjustmentsUpdateAndWait:(BOOL)a0 completionHandler:(id /* block */)a1; - (void)_configureImageGenerator:(id)a0 thumbnailSize:(struct CGSize { double x0; double x1; })a1 forSummaryThumbnails:(BOOL)a2; - (void)_configurePlayerForStreamedVideoIfNecessary; - (void)_createImageGenerators; - (void)_createScrubberIfNeeded; - (void)_didBeginPlayback; - (void)_didScrubToValue:(double)a0 withHandle:(int)a1; - (void)_displayPlaySpinner; - (void)_enqueueAdjustmentsForCommit; - (void)_fetchLocalContentEditingInput; - (void)_fetchNonlocalVideo; - (id)_filePathForFlattenedVideo; - (id)_filePathForFlattenedVideoMetadata; - (void)_flattenVideoWithCompletionHandler:(id /* block */)a0; - (void)_handleScreenConnectionChange:(BOOL)a0; - (void)_hideTrimMessageView:(BOOL)a0; - (void)_hideVideoOverlay:(BOOL)a0; - (void)_informDelegateAboutProgressChange:(float)a0; - (id)_initWithFrame:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 videoCameraImage:(id)a1 orientation:(long long)a2; - (void)_insertMoviePlayerViewIfNecessary; - (void)_invalidateSnapshotImage; - (BOOL)_isFlattenedVideoUpToDate; - (id)_loadThumbnailsIntoDictionary:(id)a0 isLandscape:(BOOL)a1 aspectRatio:(float)a2; - (BOOL)_mediaIsCloudSharedStreamedVideo; - (BOOL)_mediaIsVideo; - (id)_metadataForFlattenedVideo; - (double)_movieScrubberDuration; - (double)_movieTimeFromScrubberTime:(double)a0; - (id)_optionsForAVURLAsset; - (void)_playbackFinished; - (BOOL)_playerIsAirplay; - (void)_prepareAndResumePlayback; - (BOOL)_prepareMoviePlayerIfNeeded; - (id)_readMetadataFromPath:(id)a0; - (void)_reloadScrubberThumbnailsIfNeeded; - (void)_removePlaySpinner; - (void)_removeScrubberUpdateTimer; - (void)_removeTrimProgressTimer; - (void)_requestPreviewPosterFrameForVideoSize:(struct CGSize { double x0; double x1; })a0; - (void)_resetScrubberUpdateTimer; - (void)_resetTrimProgressTimer; - (void)_saveCachedThumbnailsIfNecessary; - (void)_savePreviewPosterFrameImage:(struct CGImage { } *)a0; - (void)_scrubToMovieTime:(double)a0; - (void)_scrubToSlalomRegionEditorStartHandle:(BOOL)a0; - (void)_scrubberAnimationFinished; - (double)_scrubberBackgroundHeight; - (double)_scrubberStartTime; - (double)_scrubberTimeFromMovieTime:(double)a0; - (BOOL)_scrubberTimeNeedsMapping; - (void)_setMoviePlayerActive:(BOOL)a0; - (void)_setNeedsReloadScrubberThumbnails:(BOOL)a0; - (void)_setPlaybackDidBegin:(BOOL)a0; - (void)_setPlaying:(BOOL)a0; - (void)_setupMoviePlayerIfNecessary; - (BOOL)_shouldPlayFlattenedVideo; - (BOOL)_shouldShowSlalomEditor; - (BOOL)_shouldStreamCloudPhotoLibraryVideo; - (BOOL)_shouldStreamVideo; - (void)_showVideoOverlay; - (void)_tearDownMoviePlayer; - (id)_thumbnailSourceAsset; - (void)_thumbnailsWereRegenerated:(id)a0 error:(id)a1 contextInfo:(void *)a2; - (void)_updateForEditing; - (void)_updatePosterFrameVisibility; - (void)_updatePosterImageView; - (void)_updateScaleModeForSize:(struct CGSize { double x0; double x1; })a0; - (void)_updateScrubberForSlowMotion; - (void)_updateScrubberFrame; - (void)_updateScrubberValue; - (void)_updateScrubberVisibilityWithDuration:(double)a0; - (void)_updateSlalomRegionEditorRange; - (void)_updateSlalomRegionEditorState; - (void)_updateSnapshotImage; - (void)_updateTrimProgress; - (void)_updateVideoAVObjectBuilderFromContentEditingInput:(id)a0; - (void)_verifyOrRestartPlayback; - (void)_videoOverlayFadeOutDidFinish; - (id)_videoSnapshot; - (void)_writeMetadata:(id)a0 toPath:(id)a1; - (void)cancelTrim; - (void)commitPendingUpdatesWithCompletionHandler:(id /* block */)a0; - (void)importerFinishedProcessingTrimmedVideo:(id)a0; - (id)initWithFrame:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 videoCameraImage:(id)a1 orientation:(long long)a2; - (void)moviePlayerBufferingStateDidChange:(id)a0; - (void)moviePlayerControllerDidBecomeActiveController:(id)a0; - (BOOL)moviePlayerControllerShouldAllowExternalPlayback:(id)a0; - (void)moviePlayerControllerWillResignAsActiveController:(id)a0; - (void)moviePlayerDidChangeExternalPlaybackType:(id)a0; - (void)moviePlayerDurationAvailable:(id)a0; - (void)moviePlayerEncounteredAuthenticationError:(id)a0; - (BOOL)moviePlayerExitRequest:(id)a0 exitReason:(int)a1; - (void)moviePlayerHeadsetNextTrackPressed:(id)a0; - (void)moviePlayerHeadsetPlayPausePressed:(id)a0; - (void)moviePlayerHeadsetPreviousTrackPressed:(id)a0; - (void)moviePlayerPlaybackDidEnd:(id)a0; - (void)moviePlayerPlaybackRateDidChange:(id)a0; - (void)moviePlayerPlaybackStateDidChange:(id)a0 fromPlaybackState:(unsigned long long)a1; - (void)moviePlayerReadyToDisplay:(id)a0; - (void)moviePlayerReadyToPlay:(id)a0; - (id)moviePlayerRequestsPickedAirplayRoute:(id)a0; - (BOOL)moviePlayerShouldNotifyOnPreparationError:(id)a0; - (void)moviePlayerUpdatedDestinationPlaceholder:(id)a0; - (void)moviePlayerWasSuspendedDuringPlayback:(id)a0; - (id)movieScrubber:(id)a0 timestampsStartingAt:(id)a1 endingAt:(id)a2 maxCount:(int)a3; - (id)newPreviewImageData:(id *)a0; - (void)notifyOfChange:(id)a0 shouldReloadBlock:(id /* block */)a1; - (void)notifyRequiredResourcesDownloaded; - (void)playButtonClicked:(id)a0; - (BOOL)playingToAirTunes; - (BOOL)playingToVideoOut; - (void)prepareMoviePlayer; - (void)removeVideoOverlay; - (void)setPosterFrameImage:(id)a0; - (void)setShowsScrubber:(BOOL)a0 duration:(double)a1; - (BOOL)shouldShowCopyCalloutAtPoint:(struct CGPoint { double x0; double x1; })a0; - (void)showTrimMessage:(id)a0 withBottomY:(float)a1; - (id)slalomRegionEditor; - (void)slalomRegionEditorDidBeginEditing:(id)a0 withStartHandle:(BOOL)a1; - (void)slalomRegionEditorDidEndEditing:(id)a0; - (void)slalomRegionEditorEndValueChanged:(id)a0; - (void)slalomRegionEditorRequestForceUnzoom:(id)a0; - (BOOL)slalomRegionEditorRequestForceZoom:(id)a0; - (void)slalomRegionEditorStartValueChanged:(id)a0; - (void)toggleScaleMode:(float)a0; - (void)updateForRotationWithDuration:(double)a0 isLandscape:(BOOL)a1; - (id)videoOverlayPlayButton; - (id)videoScrubber; @end