Index: content/renderer/media/webmediaplayer_impl.cc |
diff --git a/content/renderer/media/webmediaplayer_impl.cc b/content/renderer/media/webmediaplayer_impl.cc |
index 9399476dd837e07a3435c0bdfebf7ced6fb91742..c8e9c087b3ce21ee381c060afc208e3dcd7e346c 100644 |
--- a/content/renderer/media/webmediaplayer_impl.cc |
+++ b/content/renderer/media/webmediaplayer_impl.cc |
@@ -150,6 +150,8 @@ WebMediaPlayerImpl::WebMediaPlayerImpl( |
RenderThreadImpl::current()->GetMediaThreadMessageLoopProxy()), |
media_log_(new RenderMediaLog()), |
pipeline_(media_loop_, media_log_.get()), |
+ has_audio_(false), |
+ has_video_(false), |
paused_(true), |
seeking_(false), |
playback_rate_(0.0f), |
@@ -436,13 +438,13 @@ void WebMediaPlayerImpl::setPreload(WebMediaPlayer::Preload preload) { |
bool WebMediaPlayerImpl::hasVideo() const { |
DCHECK(main_loop_->BelongsToCurrentThread()); |
- return pipeline_.HasVideo(); |
+ return has_video_; |
} |
bool WebMediaPlayerImpl::hasAudio() const { |
DCHECK(main_loop_->BelongsToCurrentThread()); |
- return pipeline_.HasAudio(); |
+ return has_audio_; |
} |
blink::WebSize WebMediaPlayerImpl::naturalSize() const { |
@@ -968,6 +970,19 @@ void WebMediaPlayerImpl::OnPipelineError(PipelineStatus error) { |
InvalidateOnMainThread(); |
} |
+void WebMediaPlayerImpl::OnPipelineHasTrack( |
+ media::Pipeline::TrackType track) { |
+ switch (track) { |
+ case media::Pipeline::AUDIO: |
+ has_audio_ = true; |
+ break; |
+ |
+ case media::Pipeline::VIDEO: |
+ has_video_ = true; |
+ break; |
+ } |
+} |
+ |
void WebMediaPlayerImpl::OnPipelineBufferingState( |
media::Pipeline::BufferingState buffering_state) { |
DVLOG(1) << "OnPipelineBufferingState(" << buffering_state << ")"; |
@@ -1220,6 +1235,7 @@ void WebMediaPlayerImpl::StartPipeline() { |
BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineEnded), |
BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineError), |
BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineSeek), |
+ BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineHasTrack), |
BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineBufferingState), |
BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnDurationChange)); |
} |