diff options
Diffstat (limited to 'src/lib/transcoder.cc')
| -rw-r--r-- | src/lib/transcoder.cc | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/lib/transcoder.cc b/src/lib/transcoder.cc index f44a3ed7b..87a1fb3f2 100644 --- a/src/lib/transcoder.cc +++ b/src/lib/transcoder.cc @@ -64,7 +64,9 @@ Transcoder::Transcoder (shared_ptr<Film> f, shared_ptr<const DecodeOptions> o, J /* Set up the decoder to use the film's set streams */ _decoders.video->set_subtitle_stream (f->subtitle_stream ()); - _decoders.audio->set_audio_stream (f->audio_stream ()); + if (_decoders.audio) { + _decoders.audio->set_audio_stream (f->audio_stream ()); + } if (_matcher) { _decoders.video->connect_video (_matcher); @@ -73,7 +75,7 @@ Transcoder::Transcoder (shared_ptr<Film> f, shared_ptr<const DecodeOptions> o, J _decoders.video->connect_video (_encoder); } - if (_matcher && _delay_line) { + if (_matcher && _delay_line && _decoders.audio) { _decoders.audio->connect_audio (_delay_line); _delay_line->connect_audio (_matcher); _matcher->connect_audio (_gain); @@ -97,7 +99,7 @@ Transcoder::go () _decoders.video->set_progress (); } - if (!done[1] && dynamic_pointer_cast<Decoder> (_decoders.audio) != dynamic_pointer_cast<Decoder> (_decoders.video)) { + if (!done[1] && _decoders.audio && dynamic_pointer_cast<Decoder> (_decoders.audio) != dynamic_pointer_cast<Decoder> (_decoders.video)) { done[1] = _decoders.audio->pass (); } else { done[1] = true; |
