}
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
);
- a->set_annotation_text (i->first.name);
- a->set_language (i->first.language);
+ if (a) {
+ a->set_annotation_text (i->first.name);
+ if (!i->first.language.empty()) {
+ a->set_language (dcp::LanguageTag(i->first.language));
+ }
+ }
}
- map<dcp::Marker, DCPTime> markers = _film->markers ();
- map<dcp::Marker, DCPTime> reel_markers;
- for (map<dcp::Marker, DCPTime>::const_iterator i = markers.begin(); i != markers.end(); ++i) {
+ Film::Markers markers = _film->markers ();
+ _film->add_ffoc_lfoc (markers);
+ Film::Markers reel_markers;
+ for (Film::Markers::const_iterator i = markers.begin(); i != markers.end(); ++i) {
if (_period.contains(i->second)) {
reel_markers[i->first] = i->second;
}
}
if (!asset) {
- string lang = _film->subtitle_language ();
+ vector<dcp::LanguageTag> lang = _film->subtitle_languages ();
if (_film->interop ()) {
shared_ptr<dcp::InteropSubtitleAsset> s (new dcp::InteropSubtitleAsset ());
s->set_movie_title (_film->name ());
if (type == TEXT_OPEN_SUBTITLE) {
- s->set_language (lang.empty() ? "Unknown" : lang);
- } else {
+ s->set_language (lang.empty() ? "Unknown" : lang.front().to_string());
+ } else if (!track->language.empty()) {
s->set_language (track->language);
}
s->set_reel_number (raw_convert<string> (_reel_index + 1));
s->set_content_title_text (_film->name ());
s->set_metadata (mxf_metadata());
if (type == TEXT_OPEN_SUBTITLE && !lang.empty()) {
- s->set_language (lang);
- } else {
- s->set_language (track->language);
+ s->set_language (lang.front());
+ } else if (track && !track->language.empty()) {
+ 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);