X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=test%2Fisdcf_name_test.cc;h=d3227f636ee5ba57d75e71ef40841d73dc1ae49e;hb=e6d7b6d8520c7454ecf67df7269056a16d0e2b70;hp=b55cea1adfaf487f0a27539136276f18772f11a4;hpb=ea51ac3483161343b7aefabe54420c6cb431c0fe;p=dcpomatic.git diff --git a/test/isdcf_name_test.cc b/test/isdcf_name_test.cc index b55cea1ad..d3227f636 100644 --- a/test/isdcf_name_test.cc +++ b/test/isdcf_name_test.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2014-2019 Carl Hetherington + Copyright (C) 2014-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -59,20 +59,17 @@ BOOST_AUTO_TEST_CASE (isdcf_name_test) 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 */ @@ -97,9 +94,7 @@ BOOST_AUTO_TEST_CASE (isdcf_name_test) 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"); @@ -129,6 +124,13 @@ BOOST_AUTO_TEST_CASE (isdcf_name_test) 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 */ @@ -139,26 +141,24 @@ BOOST_AUTO_TEST_CASE (isdcf_name_test) /* 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"); @@ -230,5 +230,9 @@ BOOST_AUTO_TEST_CASE (isdcf_name_test) 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"); }