Always make 16-channel MXFs.
[dcpomatic.git] / test / silence_padding_test.cc
index 45908bba8cd2a90a264cd7a08d07f018b3f4c2ba..59614c6c0f0b39e7cc7e68d5eb19aa81a119df99 100644 (file)
@@ -47,7 +47,7 @@ using boost::lexical_cast;
 
 
 static void
-test_silence_padding (int channels)
+test_silence_padding(int channels, dcp::Standard standard)
 {
        string const film_name = "silence_padding_test_" + lexical_cast<string> (channels);
        auto film = new_test_film2 (
@@ -57,8 +57,16 @@ test_silence_padding (int channels)
                        make_shared<FFmpegContent>("test/data/staircase.wav")
                });
 
+       if (standard == dcp::Standard::INTEROP) {
+               film->set_interop(true);
+       }
        film->set_audio_channels (channels);
-       make_and_verify_dcp (film);
+
+       std::vector<dcp::VerificationNote::Code> codes;
+       if (standard == dcp::Standard::INTEROP) {
+               codes.push_back(dcp::VerificationNote::Code::INVALID_STANDARD);
+       }
+       make_and_verify_dcp(film, codes);
 
        boost::filesystem::path path = "build/test";
        path /= film_name;
@@ -75,6 +83,13 @@ test_silence_padding (int channels)
        /* DCP sound asset frame */
        int frame = 0;
 
+       auto const asset_channels = sound_asset->asset()->channels();
+       if (standard == dcp::Standard::SMPTE) {
+               DCP_ASSERT(asset_channels == MAX_DCP_AUDIO_CHANNELS)
+       } else {
+               DCP_ASSERT(asset_channels == channels);
+       }
+
        while (n < sound_asset->asset()->intrinsic_duration()) {
                auto sound_frame = sound_asset->asset()->start_read()->get_frame(frame++);
                uint8_t const * d = sound_frame->data ();
@@ -101,8 +116,10 @@ test_silence_padding (int channels)
 BOOST_AUTO_TEST_CASE (silence_padding_test)
 {
        for (int i = 1; i < MAX_DCP_AUDIO_CHANNELS; ++i) {
-               test_silence_padding (i);
+               test_silence_padding(i, dcp::Standard::INTEROP);
        }
+
+       test_silence_padding(MAX_DCP_AUDIO_CHANNELS, dcp::Standard::SMPTE);
 }