Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(24)

Unified Diff: chromecast/media/cma/pipeline/av_pipeline_impl.cc

Issue 987513006: Chromecast: fixes crash in AvPipelineImpl teardown. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: changes Finalize signature (not a build failure on arm...) Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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) {
« no previous file with comments | « chromecast/media/cma/pipeline/av_pipeline_impl.h ('k') | chromecast/media/cma/pipeline/video_pipeline_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698