summaryrefslogtreecommitdiffstats
path: root/media/base/pipeline_impl.cc
diff options
context:
space:
mode:
authorscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-17 23:33:20 +0000
committerscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-17 23:33:20 +0000
commit8621715ceeb4533aca1d27d639cd2e47c33cd961 (patch)
treed9e12a545a5191abacb76a48b02600f3a890d627 /media/base/pipeline_impl.cc
parenta9d8d382fab207a4216e1789a2635521b7b53389 (diff)
downloadchromium_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.cc25
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();
}
}