Index: content/renderer/media/webmediaplayer_impl.cc |
diff --git a/content/renderer/media/webmediaplayer_impl.cc b/content/renderer/media/webmediaplayer_impl.cc |
index 68eafa1e0378d4acc7ff4818015f1ca5c20f01f8..3c566b2d61fd912bf298b87ffc8f313e41ec39dd 100644 |
--- a/content/renderer/media/webmediaplayer_impl.cc |
+++ b/content/renderer/media/webmediaplayer_impl.cc |
@@ -117,14 +117,8 @@ COMPILE_ASSERT_MATCHING_ENUM(Anonymous); |
COMPILE_ASSERT_MATCHING_ENUM(UseCredentials); |
#undef COMPILE_ASSERT_MATCHING_ENUM |
-#define BIND_TO_RENDER_LOOP(function) \ |
- media::BindToLoop(main_loop_, base::Bind(function, AsWeakPtr())) |
- |
-#define BIND_TO_RENDER_LOOP_1(function, arg1) \ |
- media::BindToLoop(main_loop_, base::Bind(function, AsWeakPtr(), arg1)) |
- |
-#define BIND_TO_RENDER_LOOP_2(function, arg1, arg2) \ |
- media::BindToLoop(main_loop_, base::Bind(function, AsWeakPtr(), arg1, arg2)) |
+#define BIND_TO_CURRENT_LOOP(function) \ |
Ami GONE FROM CHROMIUM
2014/01/08 21:37:41
"CURRENT" is less informative at the callsite than
scherkus (not reviewing)
2014/01/09 01:52:02
I really like the DCHECK() idea, but since this ma
|
+ media::BindToCurrentLoop(base::Bind(function, AsWeakPtr())) |
static void LogMediaSourceError(const scoped_refptr<media::MediaLog>& media_log, |
const std::string& error) { |
@@ -193,9 +187,9 @@ WebMediaPlayerImpl::WebMediaPlayerImpl( |
client, |
frame, |
#endif |
- BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnKeyAdded), |
- BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnKeyError), |
- BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnKeyMessage))); |
+ BIND_TO_CURRENT_LOOP(&WebMediaPlayerImpl::OnKeyAdded), |
+ BIND_TO_CURRENT_LOOP(&WebMediaPlayerImpl::OnKeyError), |
+ BIND_TO_CURRENT_LOOP(&WebMediaPlayerImpl::OnKeyMessage))); |
} |
// Use the null sink if no sink was provided. |
@@ -375,7 +369,7 @@ void WebMediaPlayerImpl::seek(double seconds) { |
// Kick off the asynchronous seek! |
pipeline_->Seek( |
seek_time, |
- BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineSeek)); |
+ BIND_TO_CURRENT_LOOP(&WebMediaPlayerImpl::OnPipelineSeek)); |
} |
void WebMediaPlayerImpl::setRate(double rate) { |
@@ -1075,6 +1069,7 @@ void WebMediaPlayerImpl::NotifyDownloading(bool is_downloading) { |
} |
void WebMediaPlayerImpl::StartPipeline() { |
+ DCHECK(main_loop_->BelongsToCurrentThread()); |
const CommandLine* cmd_line = CommandLine::ForCurrentProcess(); |
// Keep track if this is a MSE or non-MSE playback. |
@@ -1088,15 +1083,15 @@ void WebMediaPlayerImpl::StartPipeline() { |
demuxer_.reset(new media::FFmpegDemuxer( |
media_loop_, data_source_.get(), |
- BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnNeedKey), |
+ BIND_TO_CURRENT_LOOP(&WebMediaPlayerImpl::OnNeedKey), |
media_log_)); |
} else { |
DCHECK(!chunk_demuxer_); |
DCHECK(!data_source_); |
chunk_demuxer_ = new media::ChunkDemuxer( |
- BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnDemuxerOpened), |
- BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnNeedKey), |
+ BIND_TO_CURRENT_LOOP(&WebMediaPlayerImpl::OnDemuxerOpened), |
+ BIND_TO_CURRENT_LOOP(&WebMediaPlayerImpl::OnNeedKey), |
base::Bind(&LogMediaSourceError, media_log_)); |
demuxer_.reset(chunk_demuxer_); |
} |
@@ -1146,7 +1141,7 @@ void WebMediaPlayerImpl::StartPipeline() { |
video_decoders.Pass(), |
set_decryptor_ready_cb, |
base::Bind(&WebMediaPlayerImpl::FrameReady, base::Unretained(this)), |
- BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::SetOpaque), |
+ BIND_TO_CURRENT_LOOP(&WebMediaPlayerImpl::SetOpaque), |
true)); |
filter_collection->SetVideoRenderer(video_renderer.Pass()); |
@@ -1154,7 +1149,7 @@ void WebMediaPlayerImpl::StartPipeline() { |
scoped_ptr<media::TextRenderer> text_renderer( |
new media::TextRenderer( |
media_loop_, |
- BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnAddTextTrack))); |
+ BIND_TO_CURRENT_LOOP(&WebMediaPlayerImpl::OnAddTextTrack))); |
filter_collection->SetTextRenderer(text_renderer.Pass()); |
} |
@@ -1163,11 +1158,11 @@ void WebMediaPlayerImpl::StartPipeline() { |
starting_ = true; |
pipeline_->Start( |
filter_collection.Pass(), |
- BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineEnded), |
- BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineError), |
- BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineSeek), |
- BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineBufferingState), |
- BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnDurationChange)); |
+ BIND_TO_CURRENT_LOOP(&WebMediaPlayerImpl::OnPipelineEnded), |
+ BIND_TO_CURRENT_LOOP(&WebMediaPlayerImpl::OnPipelineError), |
+ BIND_TO_CURRENT_LOOP(&WebMediaPlayerImpl::OnPipelineSeek), |
+ BIND_TO_CURRENT_LOOP(&WebMediaPlayerImpl::OnPipelineBufferingState), |
+ BIND_TO_CURRENT_LOOP(&WebMediaPlayerImpl::OnDurationChange)); |
} |
void WebMediaPlayerImpl::SetNetworkState(WebMediaPlayer::NetworkState state) { |