summaryrefslogtreecommitdiff
path: root/src/lib/reel_writer.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-04-09 21:20:10 +0200
committerCarl Hetherington <cth@carlh.net>2021-04-09 21:20:10 +0200
commitc27d14badb229c24533db65dbaee1939dce89455 (patch)
tree250f422babe86b56bac69fe45142fd1fd4d0ec11 /src/lib/reel_writer.cc
parentf10849bd52470a93f54bb90686aa9a3b1e72e796 (diff)
Make DCP text track language properly optional and ignore bad values on imported DCPs (#1950).
Diffstat (limited to 'src/lib/reel_writer.cc')
-rw-r--r--src/lib/reel_writer.cc16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/lib/reel_writer.cc b/src/lib/reel_writer.cc
index 3eb43161e..2d88d7162 100644
--- a/src/lib/reel_writer.cc
+++ b/src/lib/reel_writer.cc
@@ -653,8 +653,8 @@ ReelWriter::create_reel_text (
);
DCPOMATIC_ASSERT (a);
a->set_annotation_text (i.first.name);
- if (!i.first.language.empty()) {
- a->set_language (dcp::LanguageTag(i.first.language));
+ if (i.first.language) {
+ a->set_language (i.first.language.get());
}
ensure_closed_captions.erase (i.first);
@@ -667,8 +667,8 @@ ReelWriter::create_reel_text (
);
DCPOMATIC_ASSERT (a);
a->set_annotation_text (i.name);
- if (!i.language.empty()) {
- a->set_language (dcp::LanguageTag(i.language));
+ if (i.language) {
+ a->set_language (i.language.get());
}
}
}
@@ -782,8 +782,8 @@ ReelWriter::empty_text_asset (TextType type, optional<DCPTextTrack> track) const
s->set_movie_title (film()->name());
if (type == TextType::OPEN_SUBTITLE) {
s->set_language (lang.first ? lang.first->to_string() : "Unknown");
- } else if (!track->language.empty()) {
- s->set_language (track->language);
+ } else if (track->language) {
+ s->set_language (track->language->to_string());
}
s->set_reel_number (raw_convert<string> (_reel_index + 1));
asset = s;
@@ -793,8 +793,8 @@ ReelWriter::empty_text_asset (TextType type, optional<DCPTextTrack> track) const
s->set_metadata (mxf_metadata());
if (type == TextType::OPEN_SUBTITLE && lang.first) {
s->set_language (*lang.first);
- } else if (track && !track->language.empty()) {
- s->set_language (dcp::LanguageTag(track->language));
+ } else if (track && track->language) {
+ s->set_language (dcp::LanguageTag(track->language->to_string()));
}
s->set_edit_rate (dcp::Fraction (film()->video_frame_rate(), 1));
s->set_reel_number (_reel_index + 1);