diff options
author | hclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-23 01:20:37 +0000 |
---|---|---|
committer | hclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-23 01:20:37 +0000 |
commit | 457d83467c00c236e806bb150796a2efdc88bfcf (patch) | |
tree | 36c58186b34d36300374b232fb79540457307b23 /media/tools/player_wtl | |
parent | 77a397cc5cf8106e559aa87a5228478afc28cec1 (diff) | |
download | chromium_src-457d83467c00c236e806bb150796a2efdc88bfcf.zip chromium_src-457d83467c00c236e806bb150796a2efdc88bfcf.tar.gz chromium_src-457d83467c00c236e806bb150796a2efdc88bfcf.tar.bz2 |
Terminate FilterFactory and his nasty friends
FilterFactory, IsMediaFormatSupported and CreateFactory are the source
of evil. They also have have a gang of template functions. This patch
terminate them all and make the world a better place.
BUG=28207
TEST=<video> runs
Review URL: http://codereview.chromium.org/3878001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63609 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/tools/player_wtl')
-rw-r--r-- | media/tools/player_wtl/movie.cc | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/media/tools/player_wtl/movie.cc b/media/tools/player_wtl/movie.cc index be97097..90dae4f 100644 --- a/media/tools/player_wtl/movie.cc +++ b/media/tools/player_wtl/movie.cc @@ -19,7 +19,7 @@ using media::FFmpegAudioDecoder; using media::FFmpegDemuxer; using media::FFmpegVideoDecoder; using media::FileDataSource; -using media::FilterFactoryCollection; +using media::MediaFilterCollection; using media::PipelineImpl; namespace media { @@ -53,28 +53,26 @@ bool Movie::Open(const wchar_t* url, WtlVideoRenderer* video_renderer) { Close(); } - // Create our filter factories. - scoped_refptr<FilterFactoryCollection> factories = - new FilterFactoryCollection(); - factories->AddFactory(FileDataSource::CreateFactory()); - factories->AddFactory(FFmpegAudioDecoder::CreateFactory()); - factories->AddFactory(FFmpegDemuxer::CreateFilterFactory()); - factories->AddFactory(FFmpegVideoDecoder::CreateFactory(NULL)); + // 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)); if (enable_audio_) { - factories->AddFactory(AudioRendererImpl::CreateFilterFactory()); + collection.push_back(new AudioRendererImpl()); } else { - factories->AddFactory(media::NullAudioRenderer::CreateFilterFactory()); + collection.push_back(new media::NullAudioRenderer()); } - factories->AddFactory( - new media::InstanceFilterFactory<WtlVideoRenderer>(video_renderer)); + collection.push_back(video_renderer); thread_.reset(new base::Thread("PipelineThread")); thread_->Start(); pipeline_ = new PipelineImpl(thread_->message_loop()); // Create and start our pipeline. - pipeline_->Start(factories, WideToUTF8(std::wstring(url)), NULL); + pipeline_->Start(collection, WideToUTF8(std::wstring(url)), NULL); while (true) { PlatformThread::Sleep(100); if (pipeline_->IsInitialized()) |