| Index: media/blink/webmediaplayer_impl.h
|
| diff --git a/media/blink/webmediaplayer_impl.h b/media/blink/webmediaplayer_impl.h
|
| index ba03528cde0586e5ed147673922c16c0f41b3545..efd057eaca667fbfe8bd546a92fa3c6737c19c43 100644
|
| --- a/media/blink/webmediaplayer_impl.h
|
| +++ b/media/blink/webmediaplayer_impl.h
|
| @@ -27,6 +27,7 @@
|
| #include "media/blink/encrypted_media_player_support.h"
|
| #include "media/blink/media_blink_export.h"
|
| #include "media/blink/multibuffer_data_source.h"
|
| +#include "media/blink/pipeline_state.h"
|
| #include "media/blink/video_frame_compositor.h"
|
| #include "media/blink/webmediaplayer_delegate.h"
|
| #include "media/blink/webmediaplayer_params.h"
|
| @@ -181,8 +182,6 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl
|
| blink::WebContentDecryptionModule* cdm,
|
| blink::WebContentDecryptionModuleResult result) override;
|
|
|
| - void OnPipelineSeeked(bool time_changed, PipelineStatus status);
|
| - void OnPipelineSuspended(PipelineStatus status);
|
| void OnPipelineEnded();
|
| void OnPipelineError(PipelineStatus error);
|
| void OnPipelineMetadata(PipelineMetadata metadata);
|
| @@ -191,6 +190,9 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl
|
| void OnAddTextTrack(const TextTrackConfig& config,
|
| const AddTextTrackDoneCB& done_cb);
|
|
|
| + void OnPipelineSeeked(bool time_updated);
|
| + void OnPipelineSuspended();
|
| +
|
| // WebMediaPlayerDelegate::Observer implementation.
|
| void OnHidden() override;
|
| void OnShown() override;
|
| @@ -212,19 +214,7 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl
|
| #endif
|
|
|
| private:
|
| - // Ask for the pipeline to be suspended, will call Suspend() when ready.
|
| - // (Possibly immediately.)
|
| - void ScheduleSuspend();
|
| -
|
| - // Initiate suspending the pipeline.
|
| - void Suspend();
|
| -
|
| - // Ask for the pipeline to be resumed, will call Resume() when ready.
|
| - // (Possibly immediately.)
|
| - void ScheduleResume();
|
| -
|
| - // Initiate resuming the pipeline.
|
| - void Resume();
|
| + void DoSeek(base::TimeDelta time, bool time_updated);
|
|
|
| // Called after |defer_load_cb_| has decided to allow the load. If
|
| // |defer_load_cb_| is null this is called immediately.
|
| @@ -280,10 +270,6 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl
|
| // Called when a CDM has been attached to the |pipeline_|.
|
| void OnCdmAttached(bool success);
|
|
|
| - // Updates |paused_time_| to the current media time with consideration for the
|
| - // |ended_| state by clamping current time to duration upon |ended_|.
|
| - void UpdatePausedTime();
|
| -
|
| // Notifies |delegate_| that playback has started or was paused; also starts
|
| // or stops the memory usage reporting timer respectively.
|
| void NotifyPlaybackStarted();
|
| @@ -317,6 +303,7 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl
|
| scoped_refptr<base::TaskRunner> worker_task_runner_;
|
| scoped_refptr<MediaLog> media_log_;
|
| Pipeline pipeline_;
|
| + PipelineState pipeline_state_;
|
|
|
| // The LoadType passed in the |load_type| parameter of the load() call.
|
| LoadType load_type_;
|
| @@ -340,44 +327,20 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl
|
| // clock can creep forward a little bit while the asynchronous
|
| // SetPlaybackRate(0) is being executed.
|
| double playback_rate_;
|
| +
|
| + // Set while paused. |paused_time_| is only valid when |paused_| is true.
|
| bool paused_;
|
| base::TimeDelta paused_time_;
|
| - bool seeking_;
|
|
|
| - // Set when seeking (|seeking_| is true) or resuming.
|
| + // Set when starting, seeking, and resuming (all of which require a Pipeline
|
| + // seek). |seek_time_| is only valid when |seeking_| is true.
|
| + bool seeking_;
|
| base::TimeDelta seek_time_;
|
|
|
| - // Set when a suspend is required but another suspend or seek is in progress.
|
| - bool pending_suspend_;
|
| -
|
| - // Set when suspending immediately after a seek. The time change will happen
|
| - // after Resume().
|
| - bool pending_time_change_;
|
| -
|
| - // Set when a resume is required but suspending is in progress.
|
| - bool pending_resume_;
|
| -
|
| - // Set for the entire period between suspend starting and resume completing.
|
| - bool suspending_;
|
| -
|
| - // Set while suspending to detect double-suspend.
|
| - bool suspended_;
|
| -
|
| - // Set while resuming to detect double-resume.
|
| - bool resuming_;
|
| -
|
| // TODO(scherkus): Replace with an explicit ended signal to HTMLMediaElement,
|
| // see http://crbug.com/409280
|
| bool ended_;
|
|
|
| - // Indicates that a seek is queued after the current seek completes or, if the
|
| - // pipeline is suspended, after it resumes. Only the last queued seek will
|
| - // have any effect.
|
| - bool pending_seek_;
|
| -
|
| - // |pending_seek_time_| is meaningless when |pending_seek_| is false.
|
| - base::TimeDelta pending_seek_time_;
|
| -
|
| // Tracks whether to issue time changed notifications during buffering state
|
| // changes.
|
| bool should_notify_time_changed_;
|
|
|