diff options
author | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-17 23:33:20 +0000 |
---|---|---|
committer | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-17 23:33:20 +0000 |
commit | 8621715ceeb4533aca1d27d639cd2e47c33cd961 (patch) | |
tree | d9e12a545a5191abacb76a48b02600f3a890d627 /media/base/pipeline_impl.cc | |
parent | a9d8d382fab207a4216e1789a2635521b7b53389 (diff) | |
download | chromium_src-8621715ceeb4533aca1d27d639cd2e47c33cd961.zip chromium_src-8621715ceeb4533aca1d27d639cd2e47c33cd961.tar.gz chromium_src-8621715ceeb4533aca1d27d639cd2e47c33cd961.tar.bz2 |
Refactoring in media::PipelineImpl and media::MediaFilter.
A hack in media::PipelineImpl::BroadcastMessageTask() was previously required to remove the mime_type of the disabled renderer.
Since the only use of media::PipelineImpl::BroadcastMessage() is to disable the audio renderer, refactor BroadcastMessage() to DisableAudioRenderer() and refactor media::MediaFilter::OnReceivedMessage() to OnAudioRendererDisabled().
Patch by boliu@google.com:
http://codereview.chromium.org/2042014/show
BUG=19384
TEST=media_unittests
Review URL: http://codereview.chromium.org/2069006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47472 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/base/pipeline_impl.cc')
-rw-r--r-- | media/base/pipeline_impl.cc | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/media/base/pipeline_impl.cc b/media/base/pipeline_impl.cc index cbc1061b..b5a193e 100644 --- a/media/base/pipeline_impl.cc +++ b/media/base/pipeline_impl.cc @@ -444,13 +444,12 @@ void PipelineImpl::SetNetworkActivity(bool network_activity) { NewRunnableMethod(this, &PipelineImpl::NotifyNetworkEventTask)); } -void PipelineImpl::BroadcastMessage(FilterMessage message) { +void PipelineImpl::DisableAudioRenderer() { DCHECK(IsRunning()); - // Broadcast the message on the message loop. + // Disable renderer on the message loop. message_loop_->PostTask(FROM_HERE, - NewRunnableMethod(this, &PipelineImpl::BroadcastMessageTask, - message)); + NewRunnableMethod(this, &PipelineImpl::DisableAudioRendererTask)); } void PipelineImpl::InsertRenderedMimeType(const std::string& major_mime_type) { @@ -752,23 +751,19 @@ void PipelineImpl::NotifyNetworkEventTask() { } } -void PipelineImpl::BroadcastMessageTask(FilterMessage message) { +void PipelineImpl::DisableAudioRendererTask() { 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_| is read through public methods so we need to lock - // this variable. - AutoLock auto_lock(lock_); - rendered_mime_types_.erase(mime_type::kMajorTypeAudio); - } + // |rendered_mime_types_| is read through public methods so we need to lock + // this variable. + AutoLock auto_lock(lock_); + rendered_mime_types_.erase(mime_type::kMajorTypeAudio); - // Broadcast the message to all filters. + // Notify all filters of disabled audio renderer. for (FilterVector::iterator iter = filters_.begin(); iter != filters_.end(); ++iter) { - (*iter)->OnReceivedMessage(message); + (*iter)->OnAudioRendererDisabled(); } } |