summaryrefslogtreecommitdiffstats
path: root/webkit/media
diff options
context:
space:
mode:
authortommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-11 20:02:13 +0000
committertommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-11 20:02:13 +0000
commite24c547f7062bbef2d66548c30103ee9d48c1abf (patch)
tree6d397cb939762a0b687b34204e6e1dade9c63d72 /webkit/media
parent03ce3a031f0cd300b279b2334a8d70bcfa15aaff (diff)
downloadchromium_src-e24c547f7062bbef2d66548c30103ee9d48c1abf.zip
chromium_src-e24c547f7062bbef2d66548c30103ee9d48c1abf.tar.gz
chromium_src-e24c547f7062bbef2d66548c30103ee9d48c1abf.tar.bz2
Create video and audio decoder threads on demand.
Instead of creating these worker threads when the decoder objects are instantiated, we now do it when Initialize is called. Doing this avoids spinning a video decoder thread for an audio tag. BUG=114699,116873 TEST=Thread count in the renderer process goes up by 3 and not 4 when an audio element is created. Review URL: https://chromiumcodereview.appspot.com/9632024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@126077 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/media')
-rw-r--r--webkit/media/filter_helpers.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/webkit/media/filter_helpers.cc b/webkit/media/filter_helpers.cc
index 3c376f9..c6f5b2e 100644
--- a/webkit/media/filter_helpers.cc
+++ b/webkit/media/filter_helpers.cc
@@ -4,6 +4,7 @@
#include "webkit/media/filter_helpers.h"
+#include "base/bind.h"
#include "media/base/filter_collection.h"
#include "media/base/message_loop_factory.h"
#include "media/filters/chunk_demuxer_factory.h"
@@ -21,9 +22,13 @@ static void AddDefaultDecodersToCollection(
media::MessageLoopFactory* message_loop_factory,
media::FilterCollection* filter_collection) {
filter_collection->AddAudioDecoder(new media::FFmpegAudioDecoder(
- message_loop_factory->GetMessageLoop("AudioDecoderThread")));
+ base::Bind(&media::MessageLoopFactory::GetMessageLoop,
+ base::Unretained(message_loop_factory),
+ "AudioDecoderThread")));
filter_collection->AddVideoDecoder(new media::FFmpegVideoDecoder(
- message_loop_factory->GetMessageLoop("VideoDecoderThread")));
+ base::Bind(&media::MessageLoopFactory::GetMessageLoop,
+ base::Unretained(message_loop_factory),
+ "VideoDecoderThread")));
}
bool BuildMediaStreamCollection(const WebKit::WebURL& url,