diff options
author | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-03 05:40:13 +0000 |
---|---|---|
committer | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-03 05:40:13 +0000 |
commit | 9e166974e33f359467458af13987c3d87663c163 (patch) | |
tree | 63ddfaa99458d1d06b120ec99383f6ff814933da /media/tools | |
parent | bcc26067bf9a0bb7fe1600119a5b034b36b86da4 (diff) | |
download | chromium_src-9e166974e33f359467458af13987c3d87663c163.zip chromium_src-9e166974e33f359467458af13987c3d87663c163.tar.gz chromium_src-9e166974e33f359467458af13987c3d87663c163.tar.bz2 |
Move MediaFilterCollection code into a class.
Refactored FilterType usage a bit to remove the need to manually associate
FilterType values to filter base classes.
Patch by acolwell@chromium.org:
http://codereview.chromium.org/4176006/show
BUG=60778
TEST=media_unittests
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64885 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/tools')
-rw-r--r-- | media/tools/player_wtl/movie.cc | 18 | ||||
-rw-r--r-- | media/tools/player_x11/player_x11.cc | 21 |
2 files changed, 20 insertions, 19 deletions
diff --git a/media/tools/player_wtl/movie.cc b/media/tools/player_wtl/movie.cc index 90dae4f..c12d724 100644 --- a/media/tools/player_wtl/movie.cc +++ b/media/tools/player_wtl/movie.cc @@ -54,25 +54,25 @@ bool Movie::Open(const wchar_t* url, WtlVideoRenderer* video_renderer) { } // Create filter collection. - MediaFilterCollection collection; - collection.push_back(new FileDataSource()); - collection.push_back(new FFmpegAudioDecoder()); - collection.push_back(new FFmpegDemuxer()); - collection.push_back(new FFmpegVideoDecoder(NULL)); + scoped_ptr<MediaFilterCollection> collection(new MediaFilterCollection()); + collection->AddFilter(new FileDataSource()); + collection->AddFilter(new FFmpegAudioDecoder()); + collection->AddFilter(new FFmpegDemuxer()); + collection->AddFilter(new FFmpegVideoDecoder(NULL)); if (enable_audio_) { - collection.push_back(new AudioRendererImpl()); + collection->AddFilter(new AudioRendererImpl()); } else { - collection.push_back(new media::NullAudioRenderer()); + collection->AddFilter(new media::NullAudioRenderer()); } - collection.push_back(video_renderer); + collection->AddFilter(video_renderer); thread_.reset(new base::Thread("PipelineThread")); thread_->Start(); pipeline_ = new PipelineImpl(thread_->message_loop()); // Create and start our pipeline. - pipeline_->Start(collection, WideToUTF8(std::wstring(url)), NULL); + pipeline_->Start(collection.release(), WideToUTF8(std::wstring(url)), NULL); while (true) { PlatformThread::Sleep(100); if (pipeline_->IsInitialized()) diff --git a/media/tools/player_x11/player_x11.cc b/media/tools/player_x11/player_x11.cc index d1a7ffe..ad307c4 100644 --- a/media/tools/player_x11/player_x11.cc +++ b/media/tools/player_x11/player_x11.cc @@ -97,26 +97,27 @@ bool InitPipeline(MessageLoop* message_loop, } // Create our filter factories. - media::MediaFilterCollection collection; - collection.push_back(new media::FileDataSource()); - collection.push_back(new media::FFmpegDemuxer()); - collection.push_back(new media::FFmpegAudioDecoder()); + scoped_ptr<media::MediaFilterCollection> collection( + new media::MediaFilterCollection()); + collection->AddFilter(new media::FileDataSource()); + collection->AddFilter(new media::FFmpegDemuxer()); + collection->AddFilter(new media::FFmpegAudioDecoder()); if (CommandLine::ForCurrentProcess()->HasSwitch( switches::kEnableOpenMax)) { - collection.push_back(new media::OmxVideoDecoder(NULL)); + collection->AddFilter(new media::OmxVideoDecoder(NULL)); } else { - collection.push_back(new media::FFmpegVideoDecoder(NULL)); + collection->AddFilter(new media::FFmpegVideoDecoder(NULL)); } - collection.push_back(new Renderer(g_display, g_window, paint_message_loop)); + collection->AddFilter(new Renderer(g_display, g_window, paint_message_loop)); if (enable_audio) - collection.push_back(new media::AudioRendererImpl()); + collection->AddFilter(new media::AudioRendererImpl()); else - collection.push_back(new media::NullAudioRenderer()); + collection->AddFilter(new media::NullAudioRenderer()); // Creates the pipeline and start it. *pipeline = new media::PipelineImpl(message_loop); - (*pipeline)->Start(collection, filename, NULL); + (*pipeline)->Start(collection.release(), filename, NULL); // Wait until the pipeline is fully initialized. while (true) { |