}
}
- if (!dm.audio_language.empty ()) {
- d += "_" + dm.audio_language;
+ auto const audio_language = dm.audio_language.empty() ? "XX" : dm.audio_language;
- /* I'm not clear on the precise details of the convention for CCAP labelling;
- for now I'm just appending -CCAP if we have any closed captions.
- */
+ d += "_" + audio_language;
- auto burnt_in = true;
- auto ccap = false;
- for (auto i: content()) {
- for (auto j: i->text) {
- if (j->type() == TextType::OPEN_SUBTITLE && j->use() && !j->burn()) {
- burnt_in = false;
- } else if (j->type() == TextType::CLOSED_CAPTION && j->use()) {
- ccap = true;
- }
- }
- }
+ /* I'm not clear on the precise details of the convention for CCAP labelling;
+ for now I'm just appending -CCAP if we have any closed captions.
+ */
- if (!_subtitle_languages.empty()) {
- auto lang = _subtitle_languages.front().language().get_value_or("en").subtag();
- if (burnt_in) {
- transform (lang.begin(), lang.end(), lang.begin(), ::tolower);
- } else {
- transform (lang.begin(), lang.end(), lang.begin(), ::toupper);
+ auto burnt_in = true;
+ auto ccap = false;
+ for (auto i: content()) {
+ for (auto j: i->text) {
+ if (j->type() == TextType::OPEN_SUBTITLE && j->use() && !j->burn()) {
+ burnt_in = false;
+ } else if (j->type() == TextType::CLOSED_CAPTION && j->use()) {
+ ccap = true;
}
+ }
+ }
- d += "-" + lang;
- if (ccap) {
- d += "-CCAP";
- }
+ if (!_subtitle_languages.empty()) {
+ auto lang = _subtitle_languages.front().language().get_value_or("en").subtag();
+ if (burnt_in) {
+ transform (lang.begin(), lang.end(), lang.begin(), ::tolower);
} else {
- /* No subtitles */
- d += "-XX";
+ transform (lang.begin(), lang.end(), lang.begin(), ::toupper);
}
+
+ d += "-" + lang;
+ if (ccap) {
+ d += "-CCAP";
+ }
+ } else {
+ /* No subtitles */
+ d += "-XX";
}
if (!dm.territory.empty ()) {
BOOST_AUTO_TEST_CASE (isdcf_name_test)
{
- shared_ptr<Film> film = new_test_film ("isdcf_name_test");
+ auto film = new_test_film ("isdcf_name_test");
/* A basic test */
film->set_interop (true);
BOOST_CHECK_EQUAL (film->isdcf_name(false), "MyNiceFilm_FTR-1_F_EN-XX_UK-PG_MOS_2K_ST_20140704_FA_IOP_OV");
+ /* Check that specifying no audio language writes XX */
+ m.audio_language = "";
+ film->set_isdcf_metadata (m);
+ BOOST_CHECK_EQUAL (film->isdcf_name(false), "MyNiceFilm_FTR-1_F_XX-XX_UK-PG_MOS_2K_ST_20140704_FA_IOP_OV");
+
/* Test a long name and some different data */
film->set_name ("My Nice Film With A Very Long Name");
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_PP_SMPTE_OV");
}
+