Add some hints for violations of SMPTE Bv2.1 with subtitles and closed
[dcpomatic.git] / src / lib / subtitle_encoder.cc
index 19241bd6ed994d0c39581394b68ce65b2f304ae4..1ef7fcd9469b0d6b70b4b6750dcbd96f0b1fe120 100644 (file)
@@ -130,20 +130,22 @@ SubtitleEncoder::text (PlayerText subs, TextType type, optional<DCPTextTrack> tr
 
        if (!_assets[_reel_index].first) {
                shared_ptr<dcp::SubtitleAsset> 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());
-                       s->set_language (lang.empty() ? "Unknown" : lang);
+                       if (!lang.empty()) {
+                               s->set_language (lang.front().to_string());
+                       }
                        s->set_reel_number (raw_convert<string>(_reel_index + 1));
                        _assets[_reel_index].first = s;
                } else {
                        shared_ptr<dcp::SMPTESubtitleAsset> s (new dcp::SMPTESubtitleAsset());
                        s->set_content_title_text (_film->name());
                        if (!lang.empty()) {
-                               s->set_language (lang);
-                       } else {
-                               s->set_language (track->language);
+                               s->set_language (lang.front());
+                       } else if (!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);