Index: media/tools/player_wtl/movie.cc |
diff --git a/media/tools/player_wtl/movie.cc b/media/tools/player_wtl/movie.cc |
index 2661e354258d023fb98d573f2cb5692223f3c415..313401aa3d0b5c52825dbfcec9b613fe588bf744 100644 |
--- a/media/tools/player_wtl/movie.cc |
+++ b/media/tools/player_wtl/movie.cc |
@@ -12,7 +12,7 @@ |
#include "media/base/pipeline_impl.h" |
#include "media/filters/audio_renderer_impl.h" |
#include "media/filters/ffmpeg_audio_decoder.h" |
-#include "media/filters/ffmpeg_demuxer.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/null_audio_renderer.h" |
@@ -20,7 +20,7 @@ |
using media::AudioRendererImpl; |
using media::FFmpegAudioDecoder; |
-using media::FFmpegDemuxer; |
+using media::FFmpegDemuxerFactory; |
using media::FFmpegVideoDecoder; |
using media::FileDataSourceFactory; |
using media::FilterCollection; |
@@ -63,13 +63,17 @@ bool Movie::Open(const wchar_t* url, WtlVideoRenderer* video_renderer) { |
message_loop_factory_.reset(new media::MessageLoopFactoryImpl()); |
+ MessageLoop* pipeline_loop = |
+ message_loop_factory_->GetMessageLoop("PipelineThread"); |
+ pipeline_ = new PipelineImpl(pipeline_loop); |
+ |
// Create filter collection. |
scoped_ptr<FilterCollection> collection(new FilterCollection()); |
- collection->SetDataSourceFactory(new FileDataSourceFactory()); |
+ collection->SetDemuxerFactory( |
+ new FFmpegDemuxerFactory( |
+ new FileDataSourceFactory(), pipeline_loop, pipeline_.get())); |
collection->AddAudioDecoder(new FFmpegAudioDecoder( |
message_loop_factory_->GetMessageLoop("AudioDecoderThread"))); |
- collection->AddDemuxer(new FFmpegDemuxer( |
- message_loop_factory_->GetMessageLoop("DemuxThread"))); |
collection->AddVideoDecoder(new FFmpegVideoDecoder( |
message_loop_factory_->GetMessageLoop("VideoDecoderThread"), NULL)); |
@@ -80,9 +84,6 @@ bool Movie::Open(const wchar_t* url, WtlVideoRenderer* video_renderer) { |
} |
collection->AddVideoRenderer(video_renderer); |
- pipeline_ = new PipelineImpl( |
- message_loop_factory_->GetMessageLoop("PipelineThread")); |
- |
// Create and start our pipeline. |
pipeline_->Start(collection.release(), WideToUTF8(std::wstring(url)), NULL); |
while (true) { |