diff options
author | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-19 19:55:20 +0000 |
---|---|---|
committer | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-19 19:55:20 +0000 |
commit | a9415292f9aedca5c528532f1260118ad384aaed (patch) | |
tree | df6dde3058efb3594a77ef78ce904c624f78da30 /media/tools | |
parent | d2353452f11b73f763ea0be9f1a608d03cfddeac (diff) | |
download | chromium_src-a9415292f9aedca5c528532f1260118ad384aaed.zip chromium_src-a9415292f9aedca5c528532f1260118ad384aaed.tar.gz chromium_src-a9415292f9aedca5c528532f1260118ad384aaed.tar.bz2 |
Replace DataSourceFactory with explicitly initialized DataSources.
BUG=107324
TEST=layout tests
Review URL: https://chromiumcodereview.appspot.com/9243016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118338 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/tools')
-rw-r--r-- | media/tools/player_wtl/movie.cc | 21 | ||||
-rw-r--r-- | media/tools/player_x11/player_x11.cc | 15 |
2 files changed, 23 insertions, 13 deletions
diff --git a/media/tools/player_wtl/movie.cc b/media/tools/player_wtl/movie.cc index f97f88a..fcecd5f 100644 --- a/media/tools/player_wtl/movie.cc +++ b/media/tools/player_wtl/movie.cc @@ -15,7 +15,7 @@ #include "media/filters/ffmpeg_audio_decoder.h" #include "media/filters/ffmpeg_demuxer_factory.h" #include "media/filters/ffmpeg_video_decoder.h" -#include "media/filters/file_data_source_factory.h" +#include "media/filters/file_data_source.h" #include "media/filters/null_audio_renderer.h" #include "media/filters/reference_audio_renderer.h" #include "media/filters/video_renderer_base.h" @@ -23,7 +23,7 @@ using media::FFmpegAudioDecoder; using media::FFmpegDemuxerFactory; using media::FFmpegVideoDecoder; -using media::FileDataSourceFactory; +using media::FileDataSource; using media::FilterCollection; using media::Pipeline; using media::ReferenceAudioRenderer; @@ -70,12 +70,17 @@ bool Movie::Open(const wchar_t* url, VideoRendererBase* video_renderer) { message_loop_factory_->GetMessageLoop("PipelineThread"); pipeline_ = new Pipeline(pipeline_loop, new media::MediaLog()); + // Open the file. + std::string url_utf8 = WideToUTF8(string16(url)); + scoped_refptr<FileDataSource> data_source = new FileDataSource(); + if (data_source->Initialize(url_utf8) != PIPELINE_OK) { + return false; + } + // Create filter collection. scoped_ptr<FilterCollection> collection(new FilterCollection()); - collection->SetDemuxerFactory( - scoped_ptr<DemuxerFactory>(new FFmpegDemuxerFactory( - scoped_ptr<DataSourceFactory>(new FileDataSourceFactory()), - pipeline_loop))); + collection->SetDemuxerFactory(scoped_ptr<DemuxerFactory>( + new FFmpegDemuxerFactory(data_source, pipeline_loop))); collection->AddAudioDecoder(new FFmpegAudioDecoder( message_loop_factory_->GetMessageLoop("AudioDecoderThread"))); collection->AddVideoDecoder(new FFmpegVideoDecoder( @@ -91,8 +96,8 @@ bool Movie::Open(const wchar_t* url, VideoRendererBase* video_renderer) { // Create and start our pipeline. media::PipelineStatusNotification note; - pipeline_->Start(collection.Pass(), WideToUTF8(string16(url)), - note.Callback()); + pipeline_->Start(collection.Pass(), url_utf8, note.Callback()); + // Wait until the pipeline is fully initialized. note.Wait(); if (note.status() != PIPELINE_OK) diff --git a/media/tools/player_x11/player_x11.cc b/media/tools/player_x11/player_x11.cc index f4b9fcc..ef4f126 100644 --- a/media/tools/player_x11/player_x11.cc +++ b/media/tools/player_x11/player_x11.cc @@ -26,7 +26,7 @@ #include "media/filters/ffmpeg_audio_decoder.h" #include "media/filters/ffmpeg_demuxer_factory.h" #include "media/filters/ffmpeg_video_decoder.h" -#include "media/filters/file_data_source_factory.h" +#include "media/filters/file_data_source.h" #include "media/filters/null_audio_renderer.h" #include "media/filters/reference_audio_renderer.h" #include "media/filters/video_renderer_base.h" @@ -109,13 +109,18 @@ bool InitPipeline(MessageLoop* message_loop, return false; } + // Open the file. + scoped_refptr<media::FileDataSource> data_source = + new media::FileDataSource(); + if (data_source->Initialize(filename) != media::PIPELINE_OK) { + return false; + } + // Create our filter factories. scoped_ptr<media::FilterCollection> collection( new media::FilterCollection()); - collection->SetDemuxerFactory( - scoped_ptr<media::DemuxerFactory>( - new media::FFmpegDemuxerFactory(scoped_ptr<media::DataSourceFactory>( - new media::FileDataSourceFactory()), message_loop))); + collection->SetDemuxerFactory(scoped_ptr<media::DemuxerFactory>( + new media::FFmpegDemuxerFactory(data_source, message_loop))); collection->AddAudioDecoder(new media::FFmpegAudioDecoder( message_loop_factory->GetMessageLoop("AudioDecoderThread"))); collection->AddVideoDecoder(new media::FFmpegVideoDecoder( |