| Index: content/renderer/media/webmediaplayer_impl.cc
|
| diff --git a/content/renderer/media/webmediaplayer_impl.cc b/content/renderer/media/webmediaplayer_impl.cc
|
| index 2f4928ffc2b6b3c6df910574d4cfe98aa951af1c..5067d28148bf963b691bee7ed0ec8b283c727766 100644
|
| --- a/content/renderer/media/webmediaplayer_impl.cc
|
| +++ b/content/renderer/media/webmediaplayer_impl.cc
|
| @@ -18,6 +18,7 @@
|
| #include "base/debug/trace_event.h"
|
| #include "base/message_loop/message_loop_proxy.h"
|
| #include "base/metrics/histogram.h"
|
| +#include "base/single_thread_task_runner.h"
|
| #include "base/synchronization/waitable_event.h"
|
| #include "cc/blink/web_layer_impl.h"
|
| #include "cc/layers/video_layer.h"
|
| @@ -127,11 +128,11 @@ COMPILE_ASSERT_MATCHING_ENUM(UseCredentials);
|
| #undef COMPILE_ASSERT_MATCHING_ENUM
|
|
|
| #define BIND_TO_RENDER_LOOP(function) \
|
| - (DCHECK(main_loop_->BelongsToCurrentThread()), \
|
| + (DCHECK(main_task_runner_->BelongsToCurrentThread()), \
|
| media::BindToCurrentLoop(base::Bind(function, AsWeakPtr())))
|
|
|
| #define BIND_TO_RENDER_LOOP1(function, arg1) \
|
| - (DCHECK(main_loop_->BelongsToCurrentThread()), \
|
| + (DCHECK(main_task_runner_->BelongsToCurrentThread()), \
|
| media::BindToCurrentLoop(base::Bind(function, AsWeakPtr(), arg1)))
|
|
|
| static void LogMediaSourceError(const scoped_refptr<media::MediaLog>& media_log,
|
| @@ -148,11 +149,11 @@ WebMediaPlayerImpl::WebMediaPlayerImpl(
|
| network_state_(WebMediaPlayer::NetworkStateEmpty),
|
| ready_state_(WebMediaPlayer::ReadyStateHaveNothing),
|
| preload_(AUTO),
|
| - main_loop_(base::MessageLoopProxy::current()),
|
| - media_loop_(
|
| - RenderThreadImpl::current()->GetMediaThreadMessageLoopProxy()),
|
| + main_task_runner_(base::MessageLoopProxy::current()),
|
| + media_task_runner_(
|
| + RenderThreadImpl::current()->GetMediaThreadTaskRunner()),
|
| media_log_(new RenderMediaLog()),
|
| - pipeline_(media_loop_, media_log_.get()),
|
| + pipeline_(media_task_runner_, media_log_.get()),
|
| load_type_(LoadTypeURL),
|
| opaque_(false),
|
| paused_(true),
|
| @@ -186,19 +187,19 @@ WebMediaPlayerImpl::WebMediaPlayerImpl(
|
| // |GetTaskRunner()|. Since |pipeline_| will own decoders created from the
|
| // factories, require that their message loops are identical.
|
| DCHECK(!gpu_factories_.get() ||
|
| - (gpu_factories_->GetTaskRunner() == media_loop_.get()));
|
| + (gpu_factories_->GetTaskRunner() == media_task_runner_.get()));
|
|
|
| // Use the null sink if no sink was provided.
|
| audio_source_provider_ = new WebAudioSourceProviderImpl(
|
| params.audio_renderer_sink().get()
|
| ? params.audio_renderer_sink()
|
| - : new media::NullAudioSink(media_loop_));
|
| + : new media::NullAudioSink(media_task_runner_));
|
| }
|
|
|
| WebMediaPlayerImpl::~WebMediaPlayerImpl() {
|
| client_->setWebLayer(NULL);
|
|
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
| media_log_->AddEvent(
|
| media_log_->CreateEvent(media::MediaLogEvent::WEBMEDIAPLAYER_DESTROYED));
|
|
|
| @@ -240,7 +241,7 @@ void WebMediaPlayerImpl::load(LoadType load_type, const blink::WebURL& url,
|
| void WebMediaPlayerImpl::DoLoad(LoadType load_type,
|
| const blink::WebURL& url,
|
| CORSMode cors_mode) {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| GURL gurl(url);
|
| ReportMediaSchemeUma(gurl);
|
| @@ -265,7 +266,7 @@ void WebMediaPlayerImpl::DoLoad(LoadType load_type,
|
| data_source_.reset(new BufferedDataSource(
|
| url,
|
| static_cast<BufferedResourceLoader::CORSMode>(cors_mode),
|
| - main_loop_,
|
| + main_task_runner_,
|
| frame_,
|
| media_log_.get(),
|
| &buffered_data_source_host_,
|
| @@ -277,7 +278,7 @@ void WebMediaPlayerImpl::DoLoad(LoadType load_type,
|
|
|
| void WebMediaPlayerImpl::play() {
|
| DVLOG(1) << __FUNCTION__;
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| paused_ = false;
|
| pipeline_.SetPlaybackRate(playback_rate_);
|
| @@ -292,7 +293,7 @@ void WebMediaPlayerImpl::play() {
|
|
|
| void WebMediaPlayerImpl::pause() {
|
| DVLOG(1) << __FUNCTION__;
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| paused_ = true;
|
| pipeline_.SetPlaybackRate(0.0f);
|
| @@ -307,13 +308,13 @@ void WebMediaPlayerImpl::pause() {
|
| }
|
|
|
| bool WebMediaPlayerImpl::supportsSave() const {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
| return supports_save_;
|
| }
|
|
|
| void WebMediaPlayerImpl::seek(double seconds) {
|
| DVLOG(1) << __FUNCTION__ << "(" << seconds << ")";
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| if (ready_state_ > WebMediaPlayer::ReadyStateHaveMetadata)
|
| SetReadyState(WebMediaPlayer::ReadyStateHaveMetadata);
|
| @@ -347,7 +348,7 @@ void WebMediaPlayerImpl::seek(double seconds) {
|
|
|
| void WebMediaPlayerImpl::setRate(double rate) {
|
| DVLOG(1) << __FUNCTION__ << "(" << rate << ")";
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| // TODO(kylep): Remove when support for negatives is added. Also, modify the
|
| // following checks so rewind uses reasonable values also.
|
| @@ -372,7 +373,7 @@ void WebMediaPlayerImpl::setRate(double rate) {
|
|
|
| void WebMediaPlayerImpl::setVolume(double volume) {
|
| DVLOG(1) << __FUNCTION__ << "(" << volume << ")";
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| pipeline_.SetVolume(volume);
|
| }
|
| @@ -388,7 +389,7 @@ COMPILE_ASSERT_MATCHING_ENUM(PreloadAuto, AUTO);
|
|
|
| void WebMediaPlayerImpl::setPreload(WebMediaPlayer::Preload preload) {
|
| DVLOG(1) << __FUNCTION__ << "(" << preload << ")";
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| preload_ = static_cast<content::Preload>(preload);
|
| if (data_source_)
|
| @@ -396,31 +397,31 @@ void WebMediaPlayerImpl::setPreload(WebMediaPlayer::Preload preload) {
|
| }
|
|
|
| bool WebMediaPlayerImpl::hasVideo() const {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| return pipeline_metadata_.has_video;
|
| }
|
|
|
| bool WebMediaPlayerImpl::hasAudio() const {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| return pipeline_metadata_.has_audio;
|
| }
|
|
|
| blink::WebSize WebMediaPlayerImpl::naturalSize() const {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| return blink::WebSize(pipeline_metadata_.natural_size);
|
| }
|
|
|
| bool WebMediaPlayerImpl::paused() const {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| return pipeline_.GetPlaybackRate() == 0.0f;
|
| }
|
|
|
| bool WebMediaPlayerImpl::seeking() const {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| if (ready_state_ == WebMediaPlayer::ReadyStateHaveNothing)
|
| return false;
|
| @@ -429,7 +430,7 @@ bool WebMediaPlayerImpl::seeking() const {
|
| }
|
|
|
| double WebMediaPlayerImpl::duration() const {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| if (ready_state_ == WebMediaPlayer::ReadyStateHaveNothing)
|
| return std::numeric_limits<double>::quiet_NaN();
|
| @@ -438,7 +439,7 @@ double WebMediaPlayerImpl::duration() const {
|
| }
|
|
|
| double WebMediaPlayerImpl::timelineOffset() const {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| if (pipeline_metadata_.timeline_offset.is_null())
|
| return std::numeric_limits<double>::quiet_NaN();
|
| @@ -447,22 +448,22 @@ double WebMediaPlayerImpl::timelineOffset() const {
|
| }
|
|
|
| double WebMediaPlayerImpl::currentTime() const {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
| return (paused_ ? paused_time_ : pipeline_.GetMediaTime()).InSecondsF();
|
| }
|
|
|
| WebMediaPlayer::NetworkState WebMediaPlayerImpl::networkState() const {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
| return network_state_;
|
| }
|
|
|
| WebMediaPlayer::ReadyState WebMediaPlayerImpl::readyState() const {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
| return ready_state_;
|
| }
|
|
|
| blink::WebTimeRanges WebMediaPlayerImpl::buffered() const {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| media::Ranges<base::TimeDelta> buffered_time_ranges =
|
| pipeline_.GetBufferedTimeRanges();
|
| @@ -476,7 +477,7 @@ blink::WebTimeRanges WebMediaPlayerImpl::buffered() const {
|
| }
|
|
|
| double WebMediaPlayerImpl::maxTimeSeekable() const {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| // If we haven't even gotten to ReadyStateHaveMetadata yet then just
|
| // return 0 so that the seekable range is empty.
|
| @@ -490,7 +491,7 @@ double WebMediaPlayerImpl::maxTimeSeekable() const {
|
| }
|
|
|
| bool WebMediaPlayerImpl::didLoadingProgress() {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
| bool pipeline_progress = pipeline_.DidLoadingProgress();
|
| bool data_progress = buffered_data_source_host_.DidLoadingProgress();
|
| return pipeline_progress || data_progress;
|
| @@ -506,7 +507,7 @@ void WebMediaPlayerImpl::paint(blink::WebCanvas* canvas,
|
| const blink::WebRect& rect,
|
| unsigned char alpha,
|
| SkXfermode::Mode mode) {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
| TRACE_EVENT0("media", "WebMediaPlayerImpl:paint");
|
|
|
| // TODO(scherkus): Clarify paint() API contract to better understand when and
|
| @@ -544,28 +545,28 @@ double WebMediaPlayerImpl::mediaTimeForTimeValue(double timeValue) const {
|
| }
|
|
|
| unsigned WebMediaPlayerImpl::decodedFrameCount() const {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| media::PipelineStatistics stats = pipeline_.GetStatistics();
|
| return stats.video_frames_decoded;
|
| }
|
|
|
| unsigned WebMediaPlayerImpl::droppedFrameCount() const {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| media::PipelineStatistics stats = pipeline_.GetStatistics();
|
| return stats.video_frames_dropped;
|
| }
|
|
|
| unsigned WebMediaPlayerImpl::audioDecodedByteCount() const {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| media::PipelineStatistics stats = pipeline_.GetStatistics();
|
| return stats.audio_bytes_decoded;
|
| }
|
|
|
| unsigned WebMediaPlayerImpl::videoDecodedByteCount() const {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| media::PipelineStatistics stats = pipeline_.GetStatistics();
|
| return stats.video_bytes_decoded;
|
| @@ -628,7 +629,7 @@ WebMediaPlayer::MediaKeyException
|
| WebMediaPlayerImpl::generateKeyRequest(const WebString& key_system,
|
| const unsigned char* init_data,
|
| unsigned init_data_length) {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| return encrypted_media_support_->GenerateKeyRequest(
|
| frame_, key_system, init_data, init_data_length);
|
| @@ -641,7 +642,7 @@ WebMediaPlayer::MediaKeyException WebMediaPlayerImpl::addKey(
|
| const unsigned char* init_data,
|
| unsigned init_data_length,
|
| const WebString& session_id) {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| return encrypted_media_support_->AddKey(
|
| key_system, key, key_length, init_data, init_data_length, session_id);
|
| @@ -650,14 +651,14 @@ WebMediaPlayer::MediaKeyException WebMediaPlayerImpl::addKey(
|
| WebMediaPlayer::MediaKeyException WebMediaPlayerImpl::cancelKeyRequest(
|
| const WebString& key_system,
|
| const WebString& session_id) {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| return encrypted_media_support_->CancelKeyRequest(key_system, session_id);
|
| }
|
|
|
| void WebMediaPlayerImpl::setContentDecryptionModule(
|
| blink::WebContentDecryptionModule* cdm) {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| encrypted_media_support_->SetContentDecryptionModule(cdm);
|
| }
|
| @@ -665,14 +666,14 @@ void WebMediaPlayerImpl::setContentDecryptionModule(
|
| void WebMediaPlayerImpl::setContentDecryptionModule(
|
| blink::WebContentDecryptionModule* cdm,
|
| blink::WebContentDecryptionModuleResult result) {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| encrypted_media_support_->SetContentDecryptionModule(cdm, result);
|
| }
|
|
|
| void WebMediaPlayerImpl::setContentDecryptionModuleSync(
|
| blink::WebContentDecryptionModule* cdm) {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| encrypted_media_support_->SetContentDecryptionModuleSync(cdm);
|
| }
|
| @@ -680,7 +681,7 @@ void WebMediaPlayerImpl::setContentDecryptionModuleSync(
|
| void WebMediaPlayerImpl::OnPipelineSeeked(bool time_changed,
|
| PipelineStatus status) {
|
| DVLOG(1) << __FUNCTION__ << "(" << time_changed << ", " << status << ")";
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
| seeking_ = false;
|
| if (pending_seek_) {
|
| pending_seek_ = false;
|
| @@ -702,12 +703,12 @@ void WebMediaPlayerImpl::OnPipelineSeeked(bool time_changed,
|
|
|
| void WebMediaPlayerImpl::OnPipelineEnded() {
|
| DVLOG(1) << __FUNCTION__;
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
| client_->timeChanged();
|
| }
|
|
|
| void WebMediaPlayerImpl::OnPipelineError(PipelineStatus error) {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
| DCHECK_NE(error, media::PIPELINE_OK);
|
|
|
| if (ready_state_ == WebMediaPlayer::ReadyStateHaveNothing) {
|
| @@ -770,7 +771,7 @@ void WebMediaPlayerImpl::OnPipelineBufferingStateChanged(
|
| }
|
|
|
| void WebMediaPlayerImpl::OnDemuxerOpened() {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
| client_->mediaSourceOpened(new WebMediaSourceImpl(
|
| chunk_demuxer_, base::Bind(&LogMediaSourceError, media_log_)));
|
| }
|
| @@ -778,7 +779,7 @@ void WebMediaPlayerImpl::OnDemuxerOpened() {
|
| void WebMediaPlayerImpl::OnAddTextTrack(
|
| const media::TextTrackConfig& config,
|
| const media::AddTextTrackDoneCB& done_cb) {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| const WebInbandTextTrackImpl::Kind web_kind =
|
| static_cast<WebInbandTextTrackImpl::Kind>(config.kind());
|
| @@ -793,14 +794,14 @@ void WebMediaPlayerImpl::OnAddTextTrack(
|
| new WebInbandTextTrackImpl(web_kind, web_label, web_language, web_id,
|
| text_track_index_++));
|
|
|
| - scoped_ptr<media::TextTrack> text_track(
|
| - new TextTrackImpl(main_loop_, client_, web_inband_text_track.Pass()));
|
| + scoped_ptr<media::TextTrack> text_track(new TextTrackImpl(
|
| + main_task_runner_, client_, web_inband_text_track.Pass()));
|
|
|
| done_cb.Run(text_track.Pass());
|
| }
|
|
|
| void WebMediaPlayerImpl::DataSourceInitialized(bool success) {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| if (!success) {
|
| SetNetworkState(WebMediaPlayer::NetworkStateFormatError);
|
| @@ -831,11 +832,12 @@ scoped_ptr<media::Renderer> WebMediaPlayerImpl::CreateRenderer() {
|
| ScopedVector<media::AudioDecoder> audio_decoders;
|
|
|
| media::LogCB log_cb = base::Bind(&LogMediaSourceError, media_log_);
|
| - audio_decoders.push_back(new media::FFmpegAudioDecoder(media_loop_, log_cb));
|
| - audio_decoders.push_back(new media::OpusAudioDecoder(media_loop_));
|
| + audio_decoders.push_back(new media::FFmpegAudioDecoder(media_task_runner_,
|
| + log_cb));
|
| + audio_decoders.push_back(new media::OpusAudioDecoder(media_task_runner_));
|
|
|
| scoped_ptr<media::AudioRenderer> audio_renderer(new media::AudioRendererImpl(
|
| - media_loop_,
|
| + media_task_runner_,
|
| audio_source_provider_.get(),
|
| audio_decoders.Pass(),
|
| set_decryptor_ready_cb,
|
| @@ -850,14 +852,14 @@ scoped_ptr<media::Renderer> WebMediaPlayerImpl::CreateRenderer() {
|
| }
|
|
|
| #if !defined(MEDIA_DISABLE_LIBVPX)
|
| - video_decoders.push_back(new media::VpxVideoDecoder(media_loop_));
|
| + video_decoders.push_back(new media::VpxVideoDecoder(media_task_runner_));
|
| #endif // !defined(MEDIA_DISABLE_LIBVPX)
|
|
|
| - video_decoders.push_back(new media::FFmpegVideoDecoder(media_loop_));
|
| + video_decoders.push_back(new media::FFmpegVideoDecoder(media_task_runner_));
|
|
|
| scoped_ptr<media::VideoRenderer> video_renderer(
|
| new media::VideoRendererImpl(
|
| - media_loop_,
|
| + media_task_runner_,
|
| video_decoders.Pass(),
|
| set_decryptor_ready_cb,
|
| base::Bind(&WebMediaPlayerImpl::FrameReady, base::Unretained(this)),
|
| @@ -865,14 +867,14 @@ scoped_ptr<media::Renderer> WebMediaPlayerImpl::CreateRenderer() {
|
|
|
| // Create renderer.
|
| return scoped_ptr<media::Renderer>(new media::RendererImpl(
|
| - media_loop_,
|
| + media_task_runner_,
|
| demuxer_.get(),
|
| audio_renderer.Pass(),
|
| video_renderer.Pass()));
|
| }
|
|
|
| void WebMediaPlayerImpl::StartPipeline() {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
| const CommandLine* cmd_line = CommandLine::ForCurrentProcess();
|
|
|
| // Keep track if this is a MSE or non-MSE playback.
|
| @@ -889,7 +891,7 @@ void WebMediaPlayerImpl::StartPipeline() {
|
| DCHECK(data_source_);
|
|
|
| demuxer_.reset(new media::FFmpegDemuxer(
|
| - media_loop_, data_source_.get(),
|
| + media_task_runner_, data_source_.get(),
|
| need_key_cb,
|
| media_log_));
|
| } else {
|
| @@ -914,7 +916,7 @@ void WebMediaPlayerImpl::StartPipeline() {
|
| if (cmd_line->HasSwitch(switches::kEnableInbandTextTracks)) {
|
| scoped_ptr<media::TextRenderer> text_renderer(
|
| new media::TextRenderer(
|
| - media_loop_,
|
| + media_task_runner_,
|
| BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnAddTextTrack)));
|
|
|
| filter_collection->SetTextRenderer(text_renderer.Pass());
|
| @@ -934,7 +936,7 @@ void WebMediaPlayerImpl::StartPipeline() {
|
|
|
| void WebMediaPlayerImpl::SetNetworkState(WebMediaPlayer::NetworkState state) {
|
| DVLOG(1) << __FUNCTION__ << "(" << state << ")";
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
| network_state_ = state;
|
| // Always notify to ensure client has the latest value.
|
| client_->networkStateChanged();
|
| @@ -942,7 +944,7 @@ void WebMediaPlayerImpl::SetNetworkState(WebMediaPlayer::NetworkState state) {
|
|
|
| void WebMediaPlayerImpl::SetReadyState(WebMediaPlayer::ReadyState state) {
|
| DVLOG(1) << __FUNCTION__ << "(" << state << ")";
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|
| if (state == WebMediaPlayer::ReadyStateHaveEnoughData && data_source_ &&
|
| data_source_->assume_fully_buffered() &&
|
| @@ -977,7 +979,7 @@ void WebMediaPlayerImpl::OnDurationChanged() {
|
| }
|
|
|
| void WebMediaPlayerImpl::OnNaturalSizeChanged(gfx::Size size) {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
| DCHECK_NE(ready_state_, WebMediaPlayer::ReadyStateHaveNothing);
|
| TRACE_EVENT0("media", "WebMediaPlayerImpl::OnNaturalSizeChanged");
|
|
|
| @@ -989,7 +991,7 @@ void WebMediaPlayerImpl::OnNaturalSizeChanged(gfx::Size size) {
|
| }
|
|
|
| void WebMediaPlayerImpl::OnOpacityChanged(bool opaque) {
|
| - DCHECK(main_loop_->BelongsToCurrentThread());
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
| DCHECK_NE(ready_state_, WebMediaPlayer::ReadyStateHaveNothing);
|
|
|
| opaque_ = opaque;
|
|
|