summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-03-25 22:58:50 +0100
committerCarl Hetherington <cth@carlh.net>2021-03-25 22:58:50 +0100
commit6a9cdf1f5ab9f7f7ecea865b2930bb4c385609c4 (patch)
tree671f2655c54fbd9d7461bb9e55f96e065e9efd82 /src/lib
parent5192d1ef54f579c9ad4c09db871fe75d7f410dda (diff)
Use XX as an audio language when there is no specified audio language (#1939).
Previously we would omit the audio and subtitle language parts of the DCI name if there was no specified audio language. Sadly if we do do that EasyDCP player 4.0.1 reports a warning (whose details you can't see on the demo version).
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/film.cc56
1 files changed, 28 insertions, 28 deletions
diff --git a/src/lib/film.cc b/src/lib/film.cc
index 321a932d1..46074e2ad 100644
--- a/src/lib/film.cc
+++ b/src/lib/film.cc
@@ -904,41 +904,41 @@ Film::isdcf_name (bool if_created_now) const
}
}
- 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 ()) {