diff options
Diffstat (limited to 'chromecast')
-rw-r--r-- | chromecast/media/cma/pipeline/media_pipeline_impl.cc | 16 | ||||
-rw-r--r-- | chromecast/media/cma/pipeline/media_pipeline_impl.h | 4 |
2 files changed, 10 insertions, 10 deletions
diff --git a/chromecast/media/cma/pipeline/media_pipeline_impl.cc b/chromecast/media/cma/pipeline/media_pipeline_impl.cc index 970afe4..e741470 100644 --- a/chromecast/media/cma/pipeline/media_pipeline_impl.cc +++ b/chromecast/media/cma/pipeline/media_pipeline_impl.cc @@ -267,12 +267,6 @@ void MediaPipelineImpl::Flush(const ::media::PipelineStatusCB& status_cb) { buffering_controller_->Reset(); - // Stop the backend - if (!media_pipeline_backend_->Stop()) { - status_cb.Run(::media::PIPELINE_ERROR_ABORT); - return; - } - // Flush both the audio and video pipeline. ::media::SerialRunner::Queue bound_fns; if (audio_pipeline_) { @@ -286,7 +280,7 @@ void MediaPipelineImpl::Flush(const ::media::PipelineStatusCB& status_cb) { base::Unretained(video_pipeline_.get()))); } ::media::PipelineStatusCB transition_cb = - base::Bind(&MediaPipelineImpl::StateTransition, weak_this_, status_cb); + base::Bind(&MediaPipelineImpl::OnFlushDone, weak_this_, status_cb); pending_flush_callbacks_ = ::media::SerialRunner::Run(bound_fns, transition_cb); } @@ -342,9 +336,15 @@ void MediaPipelineImpl::SetVolume(float volume) { audio_pipeline_->SetVolume(volume); } -void MediaPipelineImpl::StateTransition( +void MediaPipelineImpl::OnFlushDone( const ::media::PipelineStatusCB& status_cb, ::media::PipelineStatus status) { + // Stop the backend + if (!media_pipeline_backend_->Stop()) { + status_cb.Run(::media::PIPELINE_ERROR_ABORT); + return; + } + pending_flush_callbacks_.reset(); status_cb.Run(status); } diff --git a/chromecast/media/cma/pipeline/media_pipeline_impl.h b/chromecast/media/cma/pipeline/media_pipeline_impl.h index c59b63d..ac84e84 100644 --- a/chromecast/media/cma/pipeline/media_pipeline_impl.h +++ b/chromecast/media/cma/pipeline/media_pipeline_impl.h @@ -69,8 +69,8 @@ class MediaPipelineImpl : public MediaPipelineBackend::Delegate { void SetCdm(BrowserCdmCast* cdm); private: - void StateTransition(const ::media::PipelineStatusCB& status_cb, - ::media::PipelineStatus status); + void OnFlushDone(const ::media::PipelineStatusCB& status_cb, + ::media::PipelineStatus status); // Invoked to notify about a change of buffering state. void OnBufferingNotification(bool is_buffering); |