#include "certificate_chain.h"
+#include "compose.hpp"
#include "cpl.h"
#include "exceptions.h"
#include "language_tag.h"
#include "reel.h"
+#include "reel_mono_picture_asset.h"
#include "reel_smpte_subtitle_asset.h"
+#include "reel_sound_asset.h"
#include "stream_operators.h"
#include "test.h"
#include <memory>
}
+/* 482-12 says that implementations may use case-insensitive comparisons for the channel identifiers,
+ * and there is one DCP in the private test suite (made by Disney) that uses LS for left surround.
+ */
+BOOST_AUTO_TEST_CASE(main_sound_configuration_test_case_insensitive)
+{
+ dcp::MainSoundConfiguration msc("51/L,-,C,LFE,LS,RS,HI,VIN");
+ BOOST_CHECK_EQUAL(msc.to_string(), "51/L,-,C,LFE,Ls,Rs,HI,VIN");
+ BOOST_CHECK_EQUAL(msc.channels(), 8);
+ BOOST_CHECK_EQUAL(msc.field(), dcp::MCASoundField::FIVE_POINT_ONE);
+ BOOST_CHECK_EQUAL(msc.mapping(0).get(), dcp::Channel::LEFT);
+ BOOST_CHECK(!msc.mapping(1));
+ BOOST_CHECK_EQUAL(msc.mapping(2).get(), dcp::Channel::CENTRE);
+ BOOST_CHECK_EQUAL(msc.mapping(3).get(), dcp::Channel::LFE);
+ BOOST_CHECK_EQUAL(msc.mapping(4).get(), dcp::Channel::LS);
+ BOOST_CHECK_EQUAL(msc.mapping(5).get(), dcp::Channel::RS);
+ BOOST_CHECK_EQUAL(msc.mapping(6).get(), dcp::Channel::HI);
+ BOOST_CHECK_EQUAL(msc.mapping(7).get(), dcp::Channel::VI);
+}
+
+
BOOST_AUTO_TEST_CASE (luminance_test1)
{
BOOST_CHECK_NO_THROW (dcp::Luminance(4, dcp::Luminance::Unit::CANDELA_PER_SQUARE_METRE));
BOOST_CHECK (cpl.main_picture_active_area().get() == dcp::Size(1440, 1080));
auto reels = cpl.reels ();
- BOOST_REQUIRE_EQUAL (reels.size(), 1);
+ BOOST_REQUIRE_EQUAL (reels.size(), 1U);
BOOST_REQUIRE (reels.front()->main_subtitle()->language());
BOOST_CHECK_EQUAL (reels.front()->main_subtitle()->language().get(), "de-DE");
auto asl = cpl.additional_subtitle_languages();
- BOOST_REQUIRE_EQUAL (asl.size(), 2);
+ BOOST_REQUIRE_EQUAL (asl.size(), 2U);
BOOST_CHECK_EQUAL (asl[0], "en-US");
BOOST_CHECK_EQUAL (asl[1], "fr-ZA");
msc.set_mapping (2, dcp::Channel::CENTRE);
msc.set_mapping (3, dcp::Channel::LFE);
msc.set_mapping (13, dcp::Channel::SYNC_SIGNAL);
- cpl.set_main_sound_configuration (msc.to_string());
+ cpl.set_main_sound_configuration(msc);
cpl.set_main_sound_sample_rate (48000);
cpl.set_main_picture_stored_area (dcp::Size(1998, 1080));
reel->add (make_shared<dcp::ReelSMPTESubtitleAsset>(doc));
cpl.add (reel);
- vector<dcp::LanguageTag> lt;
- lt.push_back(dcp::LanguageTag("en-US"));
- lt.push_back(dcp::LanguageTag("fr-ZA"));
+ auto lt = { dcp::LanguageTag("en-US"), dcp::LanguageTag("fr-ZA") };
cpl.set_additional_subtitle_languages (lt);
- cpl.write_xml ("build/test/cpl_metadata_write_test1.xml", shared_ptr<dcp::CertificateChain>());
+ cpl.set_sign_language_video_language (dcp::LanguageTag("bzs"));
+
+ cpl.write_xml ("build/test/cpl_metadata_write_test1.xml", {});
check_xml (
dcp::file_to_string("test/ref/cpl_metadata_test1.xml"),
dcp::file_to_string("build/test/cpl_metadata_write_test1.xml"),
- vector<string>()
+ {"Id", "Hash"}
);
}
{
dcp::CPL cpl ("test/ref/cpl_metadata_test1.xml");
cpl.write_xml ("build/test/cpl_metadata_roundtrip_test1.xml", shared_ptr<dcp::CertificateChain>());
- vector<string> ignore;
- ignore.push_back ("Id");
check_xml (
dcp::file_to_string("test/ref/cpl_metadata_test1.xml"),
dcp::file_to_string("build/test/cpl_metadata_roundtrip_test1.xml"),
- ignore
+ {"Id"}
);
}
msc.set_mapping (2, dcp::Channel::CENTRE);
msc.set_mapping (3, dcp::Channel::LFE);
msc.set_mapping (13, dcp::Channel::SYNC_SIGNAL);
- cpl.set_main_sound_configuration (msc.to_string());
+ cpl.set_main_sound_configuration(msc);
cpl.set_main_sound_sample_rate (48000);
cpl.set_main_picture_stored_area (dcp::Size(1998, 1080));
cpl.set_main_picture_active_area (dcp::Size(1440, 1080));
- shared_ptr<dcp::Reel> reel(new dcp::Reel());
+ auto reel = make_shared<dcp::Reel>();
reel->add (black_picture_asset("build/test/cpl_metadata_write_test1"));
cpl.add (reel);
- cpl.write_xml ("build/test/cpl_metadata_write_test2.xml", shared_ptr<dcp::CertificateChain>());
+ cpl.write_xml ("build/test/cpl_metadata_write_test2.xml", {});
check_xml (
dcp::file_to_string("test/ref/cpl_metadata_test2.xml"),
dcp::file_to_string("build/test/cpl_metadata_write_test2.xml"),
- vector<string>()
+ {"Id", "Hash"}
);
}
BOOST_CHECK (cpl.main_picture_active_area().get() == dcp::Size(1440, 1080));
auto reels = cpl.reels ();
- BOOST_REQUIRE_EQUAL (reels.size(), 1);
+ BOOST_REQUIRE_EQUAL (reels.size(), 1U);
}
);
}
+
+BOOST_AUTO_TEST_CASE(check_that_missing_full_content_title_text_is_tolerated)
+{
+ dcp::CPL cpl("test/ref/cpl_metadata_test3.xml");
+}