Fix incorrectly-timed emission of silence padding causing buffer fill (#2217).
[dcpomatic.git] / src / lib / audio_decoder.h
index 2b6e3f75879889e4e7b713a8b119b3179d0bdb23..a2e06f11ceed15773f9987eb96e3017eddca1ed0 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2012-2018 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2012-2021 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
 
 */
 
+
 /** @file src/lib/audio_decoder.h
  *  @brief Parent class for audio decoders.
  */
 
+
 #ifndef DCPOMATIC_AUDIO_DECODER_H
 #define DCPOMATIC_AUDIO_DECODER_H
 
-#include "decoder.h"
-#include "content_audio.h"
+
 #include "audio_stream.h"
+#include "content_audio.h"
+#include "decoder.h"
 #include "decoder_part.h"
 #include <boost/signals2.hpp>
 
+
 class AudioBuffers;
 class AudioContent;
 class AudioDecoderStream;
@@ -38,6 +42,7 @@ class Log;
 class Film;
 class Resampler;
 
+
 /** @class AudioDecoder.
  *  @brief Parent class for audio decoders.
  */
@@ -56,7 +61,7 @@ public:
        boost::signals2::signal<void (AudioStreamPtr, ContentAudio)> Data;
 
 private:
-       void silence (int milliseconds);
+       void silence (AudioStreamPtr stream, int milliseconds);
 
        std::shared_ptr<const AudioContent> _content;
        /** Frame after the last one that was emitted from Data (i.e. at the resampled rate, if applicable)
@@ -64,10 +69,11 @@ private:
         */
        typedef std::map<AudioStreamPtr, Frame> PositionMap;
        PositionMap _positions;
-       typedef std::map<AudioStreamPtr, std::shared_ptr<Resampler> > ResamplerMap;
+       typedef std::map<AudioStreamPtr, std::shared_ptr<Resampler>> ResamplerMap;
        ResamplerMap _resamplers;
 
        bool _fast;
 };
 
+
 #endif