summaryrefslogtreecommitdiff
path: root/src/lib/reel_writer.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2020-11-20 00:53:20 +0100
committerCarl Hetherington <cth@carlh.net>2020-11-20 23:47:03 +0100
commit4347d97b703cfddcd322051092ccfcd5b5a6b941 (patch)
tree30ee949b1cbf6cf6300c736c4e6663ffbe832616 /src/lib/reel_writer.cc
parentbea1b9f9c77c721afd15bab392a86343f8d6b83a (diff)
Subtitle language handling tweaks; write multiple subtitle languages
to SMPTE extended metadata.
Diffstat (limited to 'src/lib/reel_writer.cc')
-rw-r--r--src/lib/reel_writer.cc10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/lib/reel_writer.cc b/src/lib/reel_writer.cc
index c4df58fe7..345bcdeb3 100644
--- a/src/lib/reel_writer.cc
+++ b/src/lib/reel_writer.cc
@@ -597,7 +597,11 @@ ReelWriter::create_reel (list<ReferencedReelAsset> const & refs, list<shared_ptr
}
reel->add (reel_sound_asset);
- maybe_add_text<dcp::ReelSubtitleAsset> (_subtitle_asset, reel_picture_asset->actual_duration(), reel, refs, fonts, _film, _period);
+ shared_ptr<dcp::ReelSubtitleAsset> subtitle = maybe_add_text<dcp::ReelSubtitleAsset> (_subtitle_asset, reel_picture_asset->actual_duration(), reel, refs, fonts, _film, _period);
+ if (subtitle && !_film->subtitle_languages().empty()) {
+ subtitle->set_language (_film->subtitle_languages().front());
+ }
+
for (map<DCPTextTrack, shared_ptr<dcp::SubtitleAsset> >::const_iterator i = _closed_caption_assets.begin(); i != _closed_caption_assets.end(); ++i) {
shared_ptr<dcp::ReelClosedCaptionAsset> a = maybe_add_text<dcp::ReelClosedCaptionAsset> (
i->second, reel_picture_asset->actual_duration(), reel, refs, fonts, _film, _period
@@ -703,9 +707,9 @@ ReelWriter::write (PlayerText subs, TextType type, optional<DCPTextTrack> track,
s->set_content_title_text (_film->name ());
s->set_metadata (mxf_metadata());
if (type == TEXT_OPEN_SUBTITLE && !lang.empty()) {
- s->set_language (lang.front().to_string());
+ s->set_language (lang.front());
} else {
- s->set_language (track->language);
+ s->set_language (dcp::LanguageTag(track->language));
}
s->set_edit_rate (dcp::Fraction (_film->video_frame_rate (), 1));
s->set_reel_number (_reel_index + 1);