/*
- Copyright (C) 2014-2019 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2014-2021 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
auto audio = content_factory("test/data/sine_440.wav").front();
film->examine_and_add_content (audio);
BOOST_REQUIRE (!wait_for_jobs());
- BOOST_REQUIRE (audio->audio);
- audio->audio->set_language(dcp::LanguageTag("en-US"));
+ film->set_audio_language(dcp::LanguageTag("en-US"));
film->set_content_versions({"1"});
film->set_release_territory(dcp::LanguageTag::RegionSubtag("GB"));
film->set_ratings({dcp::Rating("BBFC", "PG")});
film->set_studio (string("ST"));
film->set_facility (string("FAC"));
- ISDCFMetadata m;
- film->set_isdcf_metadata (m);
film->set_interop (true);
BOOST_CHECK_EQUAL (film->isdcf_name(false), "MyNiceFilm_FTR-1_F_EN-XX_GB-PG_10_2K_ST_20140704_FAC_IOP_OV");
/* Check that specifying no audio language writes XX */
- audio->audio->set_language (boost::none);
+ film->set_audio_language (boost::none);
BOOST_CHECK_EQUAL (film->isdcf_name(false), "MyNiceFilm_FTR-1_F_XX-XX_GB-PG_10_2K_ST_20140704_FAC_IOP_OV");
/* Test a long name and some different data */
audio = content_factory("test/data/sine_440.wav").front();
film->examine_and_add_content (audio);
BOOST_REQUIRE (!wait_for_jobs());
- BOOST_REQUIRE (audio->audio);
- audio->audio->set_language (dcp::LanguageTag("de-DE"));
- film->set_isdcf_metadata (m);
+ film->set_audio_language (dcp::LanguageTag("de-DE"));
film->set_interop (false);
BOOST_CHECK_EQUAL (film->isdcf_name(false), "MyNiceFilmWith_TLR-2_S_DE-fr_US-R_MOS_4K_DI_20140704_PPF_SMPTE_OV");
content->video->set_custom_ratio (1.9);
BOOST_CHECK_EQUAL (film->isdcf_name(false), "MyNiceFilmWith_XSN-2_F-190_DE-fr_US-R_MOS_4K_DI_20140704_PPF_SMPTE_OV");
+
+ /* And it should be possible to set any 'strange' ratio, not just the ones we know about */
+ content->video->set_custom_ratio (2.2);
+ BOOST_CHECK_EQUAL (film->isdcf_name(false), "MyNiceFilmWith_XSN-2_F-220_DE-fr_US-R_MOS_4K_DI_20140704_PPF_SMPTE_OV");
+ content->video->set_custom_ratio (1.95);
+ BOOST_CHECK_EQUAL (film->isdcf_name(false), "MyNiceFilmWith_XSN-2_F-195_DE-fr_US-R_MOS_4K_DI_20140704_PPF_SMPTE_OV");
+
content->video->set_custom_ratio (1.33);
/* Test 3D */
/* Test content type modifiers */
film->set_three_d (false);
- m.temp_version = true;
- m.pre_release = true;
- m.red_band = true;
- m.chain = "MyChain";
- m.two_d_version_of_three_d = true;
- m.mastered_luminance = "4fl";
- film->set_isdcf_metadata (m);
+ film->set_temp_version (true);
+ film->set_pre_release (true);
+ film->set_red_band (true);
+ film->set_two_d_version_of_three_d (true);
+ film->set_chain (string("MyChain"));
+ film->set_luminance (dcp::Luminance(4.5, dcp::Luminance::Unit::FOOT_LAMBERT));
film->set_video_frame_rate (48);
- BOOST_CHECK_EQUAL (film->isdcf_name(false), "MyNiceFilmWith_XSN-2-Temp-Pre-RedBand-MyChain-2D-4fl-48_F-133_DE-fr_US-R_MOS_4K_DI_20140704_PPF_SMPTE_OV");
+ BOOST_CHECK_EQUAL (film->isdcf_name(false), "MyNiceFilmWith_XSN-2-Temp-Pre-RedBand-MyChain-2D-4.5fl-48_F-133_DE-fr_US-R_MOS_4K_DI_20140704_PPF_SMPTE_OV");
/* Test a name which is already in camelCase */
film->set_three_d (false);
- m.temp_version = false;
- m.pre_release = false;
- m.red_band = false;
- m.chain = "";
- m.two_d_version_of_three_d = false;
- m.mastered_luminance = "";
- film->set_isdcf_metadata (m);
+ film->set_temp_version (false);
+ film->set_pre_release (false);
+ film->set_red_band (false);
+ film->set_two_d_version_of_three_d (false);
+ film->set_chain (string(""));
+ film->set_luminance (boost::none);
film->set_video_frame_rate (24);
film->set_name ("IKnowCamels");
BOOST_CHECK_EQUAL (film->isdcf_name(false), "IKnowCamels_XSN-2_F-133_DE-fr_US-R_MOS_4K_DI_20140704_PPF_SMPTE_OV");
mapping.set (0, dcp::Channel::VI, 1.0);
sound->audio->set_mapping (mapping);
BOOST_CHECK_EQUAL (film->isdcf_name(false), "LikeShouting_XSN-2_F-133_DE-fr_US-R_71-HI-VI_4K_DI_20140704_PPF_SMPTE_OV");
+
+ /* Check that the proper codes are used, not just part of the language code; in this case, QBP instead of PT (#2235) */
+ film->set_audio_language(dcp::LanguageTag("pt-BR"));
+ BOOST_CHECK_EQUAL (film->isdcf_name(false), "LikeShouting_XSN-2_F-133_QBP-fr_US-R_71-HI-VI_4K_DI_20140704_PPF_SMPTE_OV");
}