Chromium Code Reviews| 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) { |