X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=test%2Fmca_subdescriptors_test.cc;h=e34a909f44827274ccd74f365e5ab717b2337120;hb=HEAD;hp=7585aa1ab6b500f88e7a1fc8918b91cc199d790f;hpb=df0e4e0278e66a27f8f3980e53d262332695f679;p=dcpomatic.git diff --git a/test/mca_subdescriptors_test.cc b/test/mca_subdescriptors_test.cc index 7585aa1ab..e34a909f4 100644 --- a/test/mca_subdescriptors_test.cc +++ b/test/mca_subdescriptors_test.cc @@ -36,17 +36,18 @@ using std::vector; static void -test_descriptors(vector channels, vector mca_tag_symbols, string group_name) +test_descriptors(int mxf_channels, vector active_channels, vector mca_tag_symbols, string group_name) { auto content = content_factory("test/data/flat_red.png"); - for (auto i = 0U; i < channels.size(); ++i) { + for (auto i = 0; i < mxf_channels; ++i) { content.push_back(content_factory("test/data/C.wav").front()); } auto film = new_test_film2("mca_subdescriptors_written_correctly", content); film->set_interop(false); + film->set_audio_channels(mxf_channels); int N = 1; - for (auto channel: channels) { + for (auto channel: active_channels) { auto mapping = AudioMapping(1, MAX_DCP_AUDIO_CHANNELS); mapping.set(0, channel, 1); content[N]->audio->set_mapping(mapping); @@ -71,21 +72,35 @@ test_descriptors(vector channels, vector mca_tag_symbols, } -BOOST_AUTO_TEST_CASE(mca_subdescriptors_written_correctly_mono) +/* This seems like an impossible case but let's check it anyway */ +BOOST_AUTO_TEST_CASE(mca_subdescriptors_written_correctly_mono_in_2_channel) { - test_descriptors({ dcp::Channel::CENTRE }, { "chL", "chR", "chC", "chLFE", "chLs", "chRs" }, "sg51"); + test_descriptors(2, { dcp::Channel::CENTRE }, { "chL", "chR" }, "sg51"); } -BOOST_AUTO_TEST_CASE(mca_subdescriptors_written_correctly_stereo) +BOOST_AUTO_TEST_CASE(mca_subdescriptors_written_correctly_mono_in_6_channel) { - test_descriptors({ dcp::Channel::LEFT, dcp::Channel::RIGHT }, { "chL", "chR", "chC", "chLFE", "chLs", "chRs" }, "sg51"); + test_descriptors(6, { dcp::Channel::CENTRE }, { "chL", "chR", "chC", "chLFE", "chLs", "chRs" }, "sg51"); +} + + +/* If we only have two channels in the MXF we shouldn't see any extra descriptors */ +BOOST_AUTO_TEST_CASE(mca_subdescriptors_written_correctly_stereo_in_2_channel) +{ + test_descriptors(2, { dcp::Channel::LEFT, dcp::Channel::RIGHT }, { "chL", "chR" }, "sg51"); +} + + +BOOST_AUTO_TEST_CASE(mca_subdescriptors_written_correctly_stereo_in_6_channel) +{ + test_descriptors(6, { dcp::Channel::LEFT, dcp::Channel::RIGHT }, { "chL", "chR", "chC", "chLFE", "chLs", "chRs" }, "sg51"); } BOOST_AUTO_TEST_CASE(mca_subdescriptors_written_correctly_51) { - test_descriptors( + test_descriptors(6, { dcp::Channel::LEFT, dcp::Channel::RIGHT, @@ -102,7 +117,7 @@ BOOST_AUTO_TEST_CASE(mca_subdescriptors_written_correctly_51) BOOST_AUTO_TEST_CASE(mca_subdescriptors_written_correctly_51_with_hi_vi) { - test_descriptors( + test_descriptors(8, { dcp::Channel::LEFT, dcp::Channel::RIGHT, @@ -121,7 +136,7 @@ BOOST_AUTO_TEST_CASE(mca_subdescriptors_written_correctly_51_with_hi_vi) BOOST_AUTO_TEST_CASE(mca_subdescriptors_written_correctly_71) { - test_descriptors( + test_descriptors(16, { dcp::Channel::LEFT, dcp::Channel::RIGHT, @@ -140,7 +155,7 @@ BOOST_AUTO_TEST_CASE(mca_subdescriptors_written_correctly_71) BOOST_AUTO_TEST_CASE(mca_subdescriptors_written_correctly_71_with_hi_vi) { - test_descriptors( + test_descriptors(16, { dcp::Channel::LEFT, dcp::Channel::RIGHT,