X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fdecoder_factory.cc;h=f7f9f4074c52ae50c6e617d1bc22d967f44ff752;hb=a00ebbc68438e84076c65e99d0e70403afb4407d;hp=1d8d12cd552bf3f7236243d489026359fb94b3d5;hpb=2587f29e54bac098296dbef6557b9bf9bcdc2406;p=dcpomatic.git diff --git a/src/lib/decoder_factory.cc b/src/lib/decoder_factory.cc index 1d8d12cd5..f7f9f4074 100644 --- a/src/lib/decoder_factory.cc +++ b/src/lib/decoder_factory.cc @@ -25,7 +25,7 @@ #include "ffmpeg_decoder.h" #include "imagemagick_decoder.h" #include "film.h" -#include "external_audio_decoder.h" +#include "sndfile_decoder.h" #include "decoder_factory.h" using std::string; @@ -36,21 +36,25 @@ using boost::dynamic_pointer_cast; Decoders decoder_factory ( - shared_ptr f, shared_ptr o, Job* j + shared_ptr f, DecodeOptions o ) { + if (f->content().empty()) { + return Decoders (); + } + if (boost::filesystem::is_directory (f->content_path()) || f->content_type() == STILL) { /* A single image file, or a directory of them */ return Decoders ( - shared_ptr (new ImageMagickDecoder (f, o, j)), - shared_ptr () + shared_ptr (new ImageMagickDecoder (f, o)), + shared_ptr (new SndfileDecoder (f, o)) ); } - shared_ptr fd (new FFmpegDecoder (f, o, j)); + shared_ptr fd (new FFmpegDecoder (f, o)); if (f->use_content_audio()) { return Decoders (fd, fd); } - return Decoders (fd, shared_ptr (new ExternalAudioDecoder (f, o, j))); + return Decoders (fd, shared_ptr (new SndfileDecoder (f, o))); }