Fix assertion failure when processors return fewer channels than the DCP has.
[dcpomatic.git] / test / audio_decoder_test.cc
index cd86b73e76942207c7580b28190fac23954673fc..e63e1a5b0a2246b94dd94fe4bc354f7212ac81d0 100644 (file)
@@ -49,9 +49,9 @@ public:
        DCPTime full_length () const {
                return DCPTime::from_seconds (float (audio_length()) / audio_stream()->frame_rate ());
        }
-       
+
        Frame audio_length () const {
-               return rint (61.2942 * audio_stream()->frame_rate ());
+               return llrint (61.2942 * audio_stream()->frame_rate ());
        }
 };
 
@@ -59,7 +59,7 @@ class TestAudioDecoder : public AudioDecoder
 {
 public:
        TestAudioDecoder (shared_ptr<TestAudioContent> content)
-               : AudioDecoder (content)
+               : AudioDecoder (content, false)
                , _test_audio_content (content)
                , _position (0)
        {}
@@ -87,7 +87,7 @@ public:
        void seek (ContentTime t, bool accurate)
        {
                AudioDecoder::seek (t, accurate);
-               _position = t.frames (_test_audio_content->resampled_audio_frame_rate ());
+               _position = t.frames_round (_test_audio_content->resampled_audio_frame_rate ());
        }
 
 private:
@@ -125,7 +125,7 @@ BOOST_AUTO_TEST_CASE (audio_decoder_get_audio_test)
 
        content.reset (new TestAudioContent (film));
        decoder.reset (new TestAudioDecoder (content));
-       
+
        /* Simple reads */
        check (0, 48000);
        check (44, 9123);
@@ -136,7 +136,7 @@ BOOST_AUTO_TEST_CASE (audio_decoder_get_audio_test)
        Frame const from = content->resampled_audio_frame_rate() * 61;
        Frame const length = content->resampled_audio_frame_rate() * 4;
        ContentAudio ca = get (from, length);
-       
+
        for (int i = 0; i < content->audio_stream()->channels(); ++i) {
                for (int j = 0; j < ca.audio->frames(); ++j) {
                        BOOST_REQUIRE_EQUAL (ca.audio->data(i)[j], j + from);