Store subtitle language(s) in Film, and allow setup of those
[dcpomatic.git] / src / lib / reel_writer.cc
index 7ed79d818128ecf1a1f34553e2f57e0683ec1ae3..a927770a5858e55698dc83a86df8787f2860475f 100644 (file)
@@ -606,9 +606,10 @@ ReelWriter::create_reel (list<ReferencedReelAsset> const & refs, list<shared_ptr
                a->set_language (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;
                }
@@ -684,12 +685,12 @@ ReelWriter::write (PlayerText subs, TextType type, optional<DCPTextTrack> track,
        }
 
        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);
+                               s->set_language (lang.empty() ? "Unknown" : lang.front().to_string());
                        } else {
                                s->set_language (track->language);
                        }
@@ -700,7 +701,7 @@ 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);
+                               s->set_language (lang.front().to_string());
                        } else {
                                s->set_language (track->language);
                        }