Account for split branch in libdcp.
[dcpomatic.git] / src / lib / dcp_subtitle_content.cc
index 3bae6e88fb572e686c418995759adcc2d698752f..5458f13913a7652cc1ee18ab8c366a510e6b891b 100644 (file)
@@ -23,8 +23,8 @@
 #include "film.h"
 #include "text_content.h"
 #include <dcp/raw_convert.h>
-#include <dcp/interop_subtitle_asset.h>
-#include <dcp/smpte_subtitle_asset.h>
+#include <dcp/interop_text_asset.h>
+#include <dcp/smpte_text_asset.h>
 #include <dcp/interop_load_font_node.h>
 #include <libxml++/libxml++.h>
 
@@ -57,12 +57,12 @@ DCPSubtitleContent::examine (shared_ptr<const Film> film, shared_ptr<Job> job)
 {
        Content::examine (film, job);
 
-       auto sc = load (path(0));
+       auto subtitle_asset = load(path(0));
 
-       auto iop = dynamic_pointer_cast<dcp::InteropSubtitleAsset>(sc);
-       auto smpte = dynamic_pointer_cast<dcp::SMPTESubtitleAsset>(sc);
+       auto iop = dynamic_pointer_cast<dcp::InteropTextAsset>(subtitle_asset);
+       auto smpte = dynamic_pointer_cast<dcp::SMPTETextAsset>(subtitle_asset);
        if (smpte) {
-               set_video_frame_rate (smpte->edit_rate().numerator);
+               set_video_frame_rate(film, smpte->edit_rate().numerator);
        }
 
        boost::mutex::scoped_lock lm (_mutex);
@@ -70,13 +70,21 @@ DCPSubtitleContent::examine (shared_ptr<const Film> film, shared_ptr<Job> job)
        /* Default to turning these subtitles on */
        only_text()->set_use (true);
 
-       _length = ContentTime::from_seconds (sc->latest_subtitle_out().as_seconds());
+       _length = ContentTime::from_seconds(subtitle_asset->latest_text_out().as_seconds());
 
-       sc->fix_empty_font_ids ();
+       subtitle_asset->fix_empty_font_ids();
 
-       for (auto i: sc->load_font_nodes()) {
-               only_text()->add_font(make_shared<Font>(i->id));
+       auto font_data = subtitle_asset->font_data();
+       for (auto node: subtitle_asset->load_font_nodes()) {
+               auto data = font_data.find(node->id);
+               if (data != font_data.end()) {
+                       only_text()->add_font(make_shared<Font>(node->id, data->second));
+               } else {
+                       only_text()->add_font(make_shared<Font>(node->id));
+               }
        }
+
+       only_text()->add_font(make_shared<Font>(""));
 }
 
 DCPTime