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

Unified Diff: media/filters/renderer_impl.cc

Issue 827013005: Avoid double task trampoline for Pipeline state transitions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix MojoRendererImpl. Created 5 years, 11 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: media/filters/renderer_impl.cc
diff --git a/media/filters/renderer_impl.cc b/media/filters/renderer_impl.cc
index e15ad6e061b31dde4fe2974819c3916ae5ec535f..1f1228717b09850819d59861e5e0e09cc3b227ce 100644
--- a/media/filters/renderer_impl.cc
+++ b/media/filters/renderer_impl.cc
@@ -11,6 +11,7 @@
#include "base/location.h"
#include "base/single_thread_task_runner.h"
#include "media/base/audio_renderer.h"
+#include "media/base/bind_to_current_loop.h"
#include "media/base/demuxer_stream_provider.h"
#include "media/base/time_source.h"
#include "media/base/video_renderer.h"
@@ -78,7 +79,9 @@ void RendererImpl::Initialize(DemuxerStreamProvider* demuxer_stream_provider,
ended_cb_ = ended_cb;
error_cb_ = error_cb;
- init_cb_ = init_cb;
+ // Always post the callback because |this| could be destroyed upon failure.
+ init_cb_ = BindToCurrentLoop(init_cb);
xhwang 2015/01/16 23:09:07 This is the tricky part of our rule that callee mu
DaleCurtis 2015/01/16 23:15:15 I realize we post below and init cb still runs asy
xhwang 2015/01/16 23:24:04 I am not too worried about long stack as long as w
DaleCurtis 2015/01/16 23:33:49 I think just adding a note to the demuxer and rend
DaleCurtis 2015/01/20 21:37:43 Done.
+
state_ = STATE_INITIALIZING;
InitializeAudioRenderer();
}

Powered by Google App Engine
This is Rietveld 408576698