Fix lots of macOS warnings by using a different boost/bind include.
[dcpomatic.git] / src / lib / subtitle_encoder.cc
index 19241bd6ed994d0c39581394b68ce65b2f304ae4..b018dcfb429a47073a946cff59298bfbc1a48730 100644 (file)
@@ -28,7 +28,7 @@
 #include <dcp/smpte_subtitle_asset.h>
 #include <boost/shared_ptr.hpp>
 #include <boost/filesystem.hpp>
-#include <boost/bind.hpp>
+#include <boost/bind/bind.hpp>
 
 #include "i18n.h"
 
@@ -38,6 +38,9 @@ using std::pair;
 using std::vector;
 using boost::shared_ptr;
 using boost::optional;
+#if BOOST_VERSION >= 106100
+using namespace boost::placeholders;
+#endif
 using dcp::raw_convert;
 
 /** @param output Directory, if there will be multiple output files, or a filename.
@@ -130,20 +133,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);