diff options
author | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-06 13:13:42 +0000 |
---|---|---|
committer | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-06 13:13:42 +0000 |
commit | c462c90bfcdfc8085a8eb70b1fffba95898fc050 (patch) | |
tree | 1bccba456d8ac6c72a907c643b2c9474404b27ca /media | |
parent | af915b00a594f29a34e4c687d3697855a8830ae1 (diff) | |
download | chromium_src-c462c90bfcdfc8085a8eb70b1fffba95898fc050.zip chromium_src-c462c90bfcdfc8085a8eb70b1fffba95898fc050.tar.gz chromium_src-c462c90bfcdfc8085a8eb70b1fffba95898fc050.tar.bz2 |
Combine audio decoding and video decoding onto a single thread.
Our use of multithreaded video decoding results in a video decoding thread that is idle most of the time. Instead of being idle it can be doing real work like decoding audio. The end result is one less thread created per media element.
BUG=61293
TBR=brettw
Review URL: https://chromiumcodereview.appspot.com/10915091
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@155179 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r-- | media/base/message_loop_factory.cc | 9 | ||||
-rw-r--r-- | media/base/message_loop_factory.h | 3 | ||||
-rw-r--r-- | media/filters/pipeline_integration_test_base.cc | 4 | ||||
-rw-r--r-- | media/tools/player_wtl/movie.cc | 4 | ||||
-rw-r--r-- | media/tools/player_x11/player_x11.cc | 4 |
5 files changed, 10 insertions, 14 deletions
diff --git a/media/base/message_loop_factory.cc b/media/base/message_loop_factory.cc index 04a904a..da6cac6 100644 --- a/media/base/message_loop_factory.cc +++ b/media/base/message_loop_factory.cc @@ -34,14 +34,11 @@ base::Thread* MessageLoopFactory::GetThread(Type type) { const char* name = NULL; switch (type) { - case kAudioDecoder: - name = "AudioDecoderThread"; - break; - case kVideoDecoder: - name = "VideoDecoderThread"; + case kDecoder: + name = "MediaDecoder"; break; case kPipeline: - name = "PipelineThread"; + name = "MediaPipeline"; break; } diff --git a/media/base/message_loop_factory.h b/media/base/message_loop_factory.h index 1112b34..11cc5be 100644 --- a/media/base/message_loop_factory.h +++ b/media/base/message_loop_factory.h @@ -28,8 +28,7 @@ namespace media { class MEDIA_EXPORT MessageLoopFactory { public: enum Type { - kAudioDecoder, - kVideoDecoder, + kDecoder, kPipeline }; diff --git a/media/filters/pipeline_integration_test_base.cc b/media/filters/pipeline_integration_test_base.cc index 1e961a8..ec283f2 100644 --- a/media/filters/pipeline_integration_test_base.cc +++ b/media/filters/pipeline_integration_test_base.cc @@ -202,11 +202,11 @@ PipelineIntegrationTestBase::CreateFilterCollection( collection->AddAudioDecoder(new FFmpegAudioDecoder( base::Bind(&MessageLoopFactory::GetMessageLoop, base::Unretained(message_loop_factory_.get()), - media::MessageLoopFactory::kAudioDecoder))); + media::MessageLoopFactory::kDecoder))); scoped_refptr<VideoDecoder> decoder = new FFmpegVideoDecoder( base::Bind(&MessageLoopFactory::GetMessageLoop, base::Unretained(message_loop_factory_.get()), - media::MessageLoopFactory::kVideoDecoder), + media::MessageLoopFactory::kDecoder), decryptor); collection->GetVideoDecoders()->push_back(decoder); diff --git a/media/tools/player_wtl/movie.cc b/media/tools/player_wtl/movie.cc index 984cff1..ed162ce 100644 --- a/media/tools/player_wtl/movie.cc +++ b/media/tools/player_wtl/movie.cc @@ -79,11 +79,11 @@ bool Movie::Open(const wchar_t* url, VideoRendererBase* video_renderer) { collection->AddAudioDecoder(new FFmpegAudioDecoder( base::Bind(&MessageLoopFactory::GetMessageLoop, base::Unretained(message_loop_factory_.get()), - media::MessageLoopFactory::kAudioDecoder))); + media::MessageLoopFactory::kDecoder))); collection->GetVideoDecoders()->push_back(new FFmpegVideoDecoder( base::Bind(&MessageLoopFactory::GetMessageLoop, base::Unretained(message_loop_factory_.get()), - media::MessageLoopFactory::kVideoDecoder), + media::MessageLoopFactory::kDecoder), NULL)); // TODO(vrk): Re-enabled audio. (crbug.com/112159) diff --git a/media/tools/player_x11/player_x11.cc b/media/tools/player_x11/player_x11.cc index d65389d..fd30b9a 100644 --- a/media/tools/player_x11/player_x11.cc +++ b/media/tools/player_x11/player_x11.cc @@ -120,11 +120,11 @@ bool InitPipeline(const scoped_refptr<base::MessageLoopProxy>& message_loop, collection->AddAudioDecoder(new media::FFmpegAudioDecoder( base::Bind(&media::MessageLoopFactory::GetMessageLoop, base::Unretained(message_loop_factory), - media::MessageLoopFactory::kAudioDecoder))); + media::MessageLoopFactory::kDecoder))); collection->GetVideoDecoders()->push_back(new media::FFmpegVideoDecoder( base::Bind(&media::MessageLoopFactory::GetMessageLoop, base::Unretained(message_loop_factory), - media::MessageLoopFactory::kVideoDecoder), + media::MessageLoopFactory::kDecoder), NULL)); // Create our video renderer and save a reference to it for painting. |