| Index: chromecast/media/cma/pipeline/av_pipeline_impl.cc
|
| diff --git a/chromecast/media/cma/pipeline/av_pipeline_impl.cc b/chromecast/media/cma/pipeline/av_pipeline_impl.cc
|
| index 6c415c7fc2e51701458518263fec2a3794a99680..06b054a083285d0331c693b7f613dc4920beeddb 100644
|
| --- a/chromecast/media/cma/pipeline/av_pipeline_impl.cc
|
| +++ b/chromecast/media/cma/pipeline/av_pipeline_impl.cc
|
| @@ -51,16 +51,6 @@ AvPipelineImpl::AvPipelineImpl(
|
| }
|
|
|
| AvPipelineImpl::~AvPipelineImpl() {
|
| - // If there are weak pointers in the wild, they must be invalidated
|
| - // on the right thread.
|
| - DCHECK(thread_checker_.CalledOnValidThread());
|
| - media_component_device_->SetClient(MediaComponentDevice::Client());
|
| -
|
| - {
|
| - base::AutoLock lock(media_keys_lock_);
|
| - if (media_keys_ && media_keys_callback_id_ != kNoCallbackId)
|
| - media_keys_->UnregisterPlayer(media_keys_callback_id_);
|
| - }
|
| }
|
|
|
| void AvPipelineImpl::TransitionToState(State state) {
|
| @@ -103,6 +93,20 @@ bool AvPipelineImpl::Initialize() {
|
| return true;
|
| }
|
|
|
| +void AvPipelineImpl::Finalize() {
|
| + DCHECK(thread_checker_.CalledOnValidThread());
|
| + media_component_device_->SetClient(MediaComponentDevice::Client());
|
| +
|
| + enable_feeding_ = false;
|
| + media_component_device_ = NULL;
|
| +
|
| + {
|
| + base::AutoLock lock(media_keys_lock_);
|
| + if (media_keys_ && media_keys_callback_id_ != kNoCallbackId)
|
| + media_keys_->UnregisterPlayer(media_keys_callback_id_);
|
| + }
|
| +}
|
| +
|
| bool AvPipelineImpl::StartPlayingFrom(
|
| base::TimeDelta time,
|
| const scoped_refptr<BufferingState>& buffering_state) {
|
|
|