Make DCP text track language properly optional and ignore bad values on imported...
[dcpomatic.git] / src / lib / subtitle_encoder.cc
index 3721ee02b5835c9d8021fbb5aa500dc48ddf821a..66957270fe91d0d6d2cbef7e11dd4223842931b8 100644 (file)
@@ -135,22 +135,22 @@ SubtitleEncoder::text (PlayerText subs, TextType type, optional<DCPTextTrack> tr
 
        if (!_assets[_reel_index].first) {
                shared_ptr<dcp::SubtitleAsset> asset;
-               vector<dcp::LanguageTag> lang = _film->subtitle_languages ();
+               auto lang = _film->subtitle_languages ();
                if (_film->interop ()) {
                        auto s = make_shared<dcp::InteropSubtitleAsset>();
                        s->set_movie_title (_film->name());
-                       if (!lang.empty()) {
-                               s->set_language (lang.front().to_string());
+                       if (lang.first) {
+                               s->set_language (lang.first->to_string());
                        }
                        s->set_reel_number (raw_convert<string>(_reel_index + 1));
                        _assets[_reel_index].first = s;
                } else {
                        auto s = make_shared<dcp::SMPTESubtitleAsset>();
                        s->set_content_title_text (_film->name());
-                       if (!lang.empty()) {
-                               s->set_language (lang.front());
-                       } else if (!track->language.empty()) {
-                               s->set_language (dcp::LanguageTag(track->language));
+                       if (lang.first) {
+                               s->set_language (*lang.first);
+                       } else if (track->language) {
+                               s->set_language (track->language.get());
                        }
                        s->set_edit_rate (dcp::Fraction (_film->video_frame_rate(), 1));
                        s->set_reel_number (_reel_index + 1);