From fc367afd6b623545150fe601e0316a08e992e731 Mon Sep 17 00:00:00 2001 From: "kylep@chromium.org" Date: Fri, 14 Aug 2009 23:06:35 +0000 Subject: Framework to display disabled mute button when audio fails. BUG=18970 TEST=play a video with no audio hardware, verify that UI changes Review URL: http://codereview.chromium.org/169010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23491 0039d316-1c4b-4281-b951-d872f2087c98 --- media/base/pipeline_impl.cc | 5 +++++ webkit/glue/webmediaplayer_impl.cc | 6 ++++++ webkit/glue/webmediaplayer_impl.h | 1 + 3 files changed, 12 insertions(+) diff --git a/media/base/pipeline_impl.cc b/media/base/pipeline_impl.cc index b9ac047..61f6344 100644 --- a/media/base/pipeline_impl.cc +++ b/media/base/pipeline_impl.cc @@ -688,6 +688,11 @@ void PipelineImpl::NotifyEndedTask() { void PipelineImpl::BroadcastMessageTask(FilterMessage message) { DCHECK_EQ(MessageLoop::current(), message_loop_); + // TODO(kylep): This is a horribly ugly hack, but we have no better way to log + // that audio is not and will not be working. + if (message == media::kMsgDisableAudio) + rendered_mime_types_.erase(mime_type::kMajorTypeAudio); + // Broadcast the message to all filters. for (FilterVector::iterator iter = filters_.begin(); iter != filters_.end(); diff --git a/webkit/glue/webmediaplayer_impl.cc b/webkit/glue/webmediaplayer_impl.cc index bc56f56..5df50d4 100644 --- a/webkit/glue/webmediaplayer_impl.cc +++ b/webkit/glue/webmediaplayer_impl.cc @@ -334,6 +334,12 @@ bool WebMediaPlayerImpl::hasVideo() const { return pipeline_->IsRendered(media::mime_type::kMajorTypeVideo); } +bool WebMediaPlayerImpl::hasAudio() const { + DCHECK(MessageLoop::current() == main_loop_); + + return pipeline_->IsRendered(media::mime_type::kMajorTypeAudio); +} + WebKit::WebSize WebMediaPlayerImpl::naturalSize() const { DCHECK(MessageLoop::current() == main_loop_); diff --git a/webkit/glue/webmediaplayer_impl.h b/webkit/glue/webmediaplayer_impl.h index da1b142..bd4a6e8 100644 --- a/webkit/glue/webmediaplayer_impl.h +++ b/webkit/glue/webmediaplayer_impl.h @@ -183,6 +183,7 @@ class WebMediaPlayerImpl : public WebKit::WebMediaPlayer, // True if a video is loaded. virtual bool hasVideo() const; + virtual bool hasAudio() const; // Dimensions of the video. virtual WebKit::WebSize naturalSize() const; -- cgit v1.1