summaryrefslogtreecommitdiffstats
path: root/media/tools
diff options
context:
space:
mode:
authorscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-19 19:55:20 +0000
committerscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-19 19:55:20 +0000
commita9415292f9aedca5c528532f1260118ad384aaed (patch)
treedf6dde3058efb3594a77ef78ce904c624f78da30 /media/tools
parentd2353452f11b73f763ea0be9f1a608d03cfddeac (diff)
downloadchromium_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.cc21
-rw-r--r--media/tools/player_x11/player_x11.cc15
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(