isdcf_name += "_" + to_upper (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.
- */
-
auto burnt_in = true;
- auto ccap = false;
for (auto i: content_list) {
for (auto text: i->text) {
if (text->type() == TextType::OPEN_SUBTITLE && text->use() && !text->burn()) {
burnt_in = false;
- } else if (text->type() == TextType::CLOSED_CAPTION && text->use()) {
- ccap = true;
}
}
}
auto sub_langs = subtitle_languages();
+ auto ccap_langs = closed_caption_languages();
if (sub_langs.first && sub_langs.first->language()) {
auto lang = entry_for_language(*sub_langs.first);
if (burnt_in) {
}
isdcf_name += "-" + lang;
+ } else if (!ccap_langs.empty()) {
+ isdcf_name += "-" + to_upper(entry_for_language(ccap_langs[0])) + "-CCAP";
} else {
/* No subtitles */
isdcf_name += "-XX";
}
- if (ccap) {
- isdcf_name += "-CCAP";
- }
-
if (_release_territory) {
auto territory = _release_territory->subtag();
isdcf_name += "_" + to_upper (territory);
class Film;
struct isdcf_name_test;
struct isdcf_name_with_atmos;
+struct isdcf_name_with_ccap;
struct recover_test_2d_encrypted;
struct atmos_encrypted_passthrough_test;
friend struct ::isdcf_name_test;
friend struct ::isdcf_name_with_atmos;
+ friend struct ::isdcf_name_with_ccap;
friend struct ::recover_test_2d_encrypted;
friend struct ::atmos_encrypted_passthrough_test;
template <class, class> friend class ChangeSignalDespatcher;
BOOST_CHECK_EQUAL(film->isdcf_name(false), "Hello_TST-1_F_XX-XX_MOS-IAB_2K_20230118_SMPTE_OV");
}
+
+BOOST_AUTO_TEST_CASE(isdcf_name_with_ccap)
+{
+ auto content = content_factory("test/data/short.srt")[0];
+ auto film = new_test_film2("isdcf_name_with_ccap", { content });
+ content->text[0]->set_use(true);
+ content->text[0]->set_type(TextType::CLOSED_CAPTION);
+ content->text[0]->set_dcp_track(DCPTextTrack("Foo", dcp::LanguageTag("de-DE")));
+ film->_isdcf_date = boost::gregorian::date(2023, boost::gregorian::Jan, 18);
+ film->set_name("Hello");
+
+ BOOST_CHECK_EQUAL(film->isdcf_name(false), "Hello_TST-1_F_XX-DE-CCAP_MOS_2K_20230118_SMPTE_OV");
+}
+