summaryrefslogtreecommitdiffstats
path: root/media/tools
diff options
context:
space:
mode:
authorfischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-29 22:05:33 +0000
committerfischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-29 22:05:33 +0000
commitbdca921e4dd8e9dd4eebc42489b7fc8d73a246ed (patch)
tree3fda5f74a5e590ecbaca0cde1182556ea61a1b90 /media/tools
parent58b169d57ed6445c11795c075144605bf840439a (diff)
downloadchromium_src-bdca921e4dd8e9dd4eebc42489b7fc8d73a246ed.zip
chromium_src-bdca921e4dd8e9dd4eebc42489b7fc8d73a246ed.tar.gz
chromium_src-bdca921e4dd8e9dd4eebc42489b7fc8d73a246ed.tar.bz2
AdaptiveDemuxer{,Factory,Stream} are born!
This family of classes enable presenting media combined from multiple URLs (e.g. pulling audio from one URL and video from another). In the future it will also enable switching sources during playback, but this isn't implemented yet. player_{x11,wtl} have been updated to use these new classes, but webmediaplayer_impl hasn't yet, because I don't want to expose my hacky alternative scheme to the world. BUG=none TEST=trybots Review URL: http://codereview.chromium.org/6769001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79750 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/tools')
-rw-r--r--media/tools/player_wtl/movie.cc6
-rw-r--r--media/tools/player_x11/player_x11.cc7
2 files changed, 9 insertions, 4 deletions
diff --git a/media/tools/player_wtl/movie.cc b/media/tools/player_wtl/movie.cc
index 3090a48..62da5e5 100644
--- a/media/tools/player_wtl/movie.cc
+++ b/media/tools/player_wtl/movie.cc
@@ -10,6 +10,7 @@
#include "media/base/filter_collection.h"
#include "media/base/message_loop_factory_impl.h"
#include "media/base/pipeline_impl.h"
+#include "media/filters/adaptive_demuxer.h"
#include "media/filters/audio_renderer_impl.h"
#include "media/filters/ffmpeg_audio_decoder.h"
#include "media/filters/ffmpeg_demuxer_factory.h"
@@ -18,6 +19,7 @@
#include "media/filters/null_audio_renderer.h"
#include "media/tools/player_wtl/wtl_renderer.h"
+using media::AdaptiveDemuxerFactory;
using media::AudioRendererImpl;
using media::FFmpegAudioDecoder;
using media::FFmpegDemuxerFactory;
@@ -69,8 +71,8 @@ bool Movie::Open(const wchar_t* url, WtlVideoRenderer* video_renderer) {
// Create filter collection.
scoped_ptr<FilterCollection> collection(new FilterCollection());
- collection->SetDemuxerFactory(new FFmpegDemuxerFactory(
- new FileDataSourceFactory(), pipeline_loop));
+ collection->SetDemuxerFactory(new AdaptiveDemuxerFactory(
+ new FFmpegDemuxerFactory(new FileDataSourceFactory(), pipeline_loop)));
collection->AddAudioDecoder(new FFmpegAudioDecoder(
message_loop_factory_->GetMessageLoop("AudioDecoderThread")));
collection->AddVideoDecoder(new FFmpegVideoDecoder(
diff --git a/media/tools/player_x11/player_x11.cc b/media/tools/player_x11/player_x11.cc
index 9624330..ea841aa 100644
--- a/media/tools/player_x11/player_x11.cc
+++ b/media/tools/player_x11/player_x11.cc
@@ -19,6 +19,7 @@
#include "media/base/media_switches.h"
#include "media/base/message_loop_factory_impl.h"
#include "media/base/pipeline_impl.h"
+#include "media/filters/adaptive_demuxer.h"
#include "media/filters/audio_renderer_impl.h"
#include "media/filters/ffmpeg_audio_decoder.h"
#include "media/filters/ffmpeg_demuxer_factory.h"
@@ -111,8 +112,10 @@ bool InitPipeline(MessageLoop* message_loop,
// Create our filter factories.
scoped_ptr<media::FilterCollection> collection(
new media::FilterCollection());
- collection->SetDemuxerFactory(new media::FFmpegDemuxerFactory(
- new media::FileDataSourceFactory(), message_loop));
+ collection->SetDemuxerFactory(
+ new media::AdaptiveDemuxerFactory(
+ new media::FFmpegDemuxerFactory(
+ new media::FileDataSourceFactory(), message_loop)));
collection->AddAudioDecoder(new media::FFmpegAudioDecoder(
message_loop_factory->GetMessageLoop("AudioDecoderThread")));
if (CommandLine::ForCurrentProcess()->HasSwitch(