X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Faudio_decoder_stream.cc;h=274bf2d547e41ecb29a6d5d7b8abb451fe6da312;hb=526fd6de4c80a7ac9614a1cb0209efff7b171cd5;hp=36274b502692e3d95bbd76e7a8162d7968a287b3;hpb=a0d1dd5d91c81ec9907cbc7b890905c463c18f62;p=dcpomatic.git diff --git a/src/lib/audio_decoder_stream.cc b/src/lib/audio_decoder_stream.cc index 36274b502..274bf2d54 100644 --- a/src/lib/audio_decoder_stream.cc +++ b/src/lib/audio_decoder_stream.cc @@ -25,6 +25,8 @@ #include "util.h" #include "film.h" #include "log.h" +#include "audio_content.h" +#include "compose.hpp" #include #include "i18n.h" @@ -42,8 +44,8 @@ AudioDecoderStream::AudioDecoderStream (shared_ptr content, , _stream (stream) , _decoder (decoder) { - if (content->resampled_audio_frame_rate() != _stream->frame_rate()) { - _resampler.reset (new Resampler (_stream->frame_rate(), content->resampled_audio_frame_rate(), _stream->channels ())); + if (content->resampled_audio_frame_rate() != _stream->frame_rate() && _stream->channels() > 0) { + _resampler.reset (new Resampler (_stream->frame_rate(), content->resampled_audio_frame_rate(), _stream->channels (), decoder->fast ())); } reset_decoded (); @@ -60,7 +62,7 @@ AudioDecoderStream::get (Frame frame, Frame length, bool accurate) { shared_ptr dec; - _content->film()->log()->log (String::compose ("ADS has request for %1 %2", frame, length), Log::TYPE_DEBUG_DECODE); + _content->film()->log()->log (String::compose ("-> ADS has request for %1 %2", frame, length), LogEntry::TYPE_DEBUG_DECODE); Frame const end = frame + length - 1; @@ -134,7 +136,7 @@ AudioDecoderStream::get (Frame frame, Frame length, bool accurate) void AudioDecoderStream::audio (shared_ptr data, ContentTime time) { - _content->film()->log()->log (String::compose ("ADS receives %1 %2", time, data->frames ()), Log::TYPE_DEBUG_DECODE); + _content->film()->log()->log (String::compose ("ADS receives %1 %2", time, data->frames ()), LogEntry::TYPE_DEBUG_DECODE); if (_resampler) { data = _resampler->run (data);