diff options
| author | Carl Hetherington <cth@carlh.net> | 2012-11-15 22:26:16 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2012-11-15 22:26:16 +0000 |
| commit | 4fbd1901fdabc829cfa7e7d4d0c1272bba87033c (patch) | |
| tree | 416701b4a2923cdc16983311239bd311282e8438 /src/lib/decoder_factory.cc | |
| parent | f5c40275a2dc444c295a547dfedcd8f9eee2bcb2 (diff) | |
Untested external audio support; AB transcodes still broken.
Diffstat (limited to 'src/lib/decoder_factory.cc')
| -rw-r--r-- | src/lib/decoder_factory.cc | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/lib/decoder_factory.cc b/src/lib/decoder_factory.cc index bb6eff971..e9b5bfa9e 100644 --- a/src/lib/decoder_factory.cc +++ b/src/lib/decoder_factory.cc @@ -25,19 +25,30 @@ #include "ffmpeg_decoder.h" #include "imagemagick_decoder.h" #include "film.h" +#include "external_audio_decoder.h" using std::string; +using std::pair; +using std::make_pair; using boost::shared_ptr; -shared_ptr<Decoder> +pair<shared_ptr<VideoDecoder>, shared_ptr<AudioDecoder> > decoder_factory ( shared_ptr<Film> f, shared_ptr<const Options> o, Job* j ) { if (boost::filesystem::is_directory (f->content_path()) || f->content_type() == STILL) { /* A single image file, or a directory of them */ - return shared_ptr<Decoder> (new ImageMagickDecoder (f, o, j)); + return make_pair ( + shared_ptr<VideoDecoder> (new ImageMagickDecoder (f, o, j)), + shared_ptr<AudioDecoder> () + ); + } + + shared_ptr<FFmpegDecoder> fd (new FFmpegDecoder (f, o, j)); + if (f->use_content_audio()) { + return make_pair (fd, fd); } - return shared_ptr<Decoder> (new FFmpegDecoder (f, o, j)); + return make_pair (fd, shared_ptr<AudioDecoder> (new ExternalAudioDecoder (f, o, j))); } |
