Setup fast state of decoder after creation.
[dcpomatic.git] / src / lib / audio_decoder.cc
index e0fb20b7eec172dbff61ff1e68bae2f8196d4310..d0ff5efec1fdaf52026a6904f71f3cf5bcfb9aca 100644 (file)
@@ -37,10 +37,10 @@ using boost::shared_ptr;
 using boost::optional;
 using namespace dcpomatic;
 
-AudioDecoder::AudioDecoder (Decoder* parent, shared_ptr<const AudioContent> content, bool fast)
+AudioDecoder::AudioDecoder (Decoder* parent, shared_ptr<const AudioContent> content)
        : DecoderPart (parent)
        , _content (content)
-       , _fast (fast)
+       , _fast (false)
 {
        /* Set up _positions so that we have one for each stream */
        BOOST_FOREACH (AudioStreamPtr i, content->streams ()) {
@@ -83,9 +83,7 @@ AudioDecoder::emit (shared_ptr<const Film> film, AudioStreamPtr stream, shared_p
                                );
 
                        resampler.reset (new Resampler (stream->frame_rate(), _content->resampled_frame_rate(film), stream->channels()));
-                       if (_fast) {
-                               resampler->set_fast ();
-                       }
+                       resampler->set_fast (_fast);
                        _resamplers[stream] = resampler;
                }
        }
@@ -165,3 +163,12 @@ AudioDecoder::silence (int milliseconds)
                Data (i, ContentAudio (silence, _positions[i]));
        }
 }
+
+void
+AudioDecoder::set_fast (bool fast)
+{
+       _fast = fast;
+       for (ResamplerMap::iterator i = _resamplers.begin(); i != _resamplers.end(); ++i) {
+               i->second->set_fast (_fast);
+       }
+}