- dcp::SubtitleContent sc (path (0), false);
- _length = DCPTime::from_seconds (sc.latest_subtitle_out().to_seconds ());
+
+ shared_ptr<dcp::SubtitleContent> sc = load (path (0));
+
+ boost::mutex::scoped_lock lm (_mutex);
+
+ _subtitle_language = sc->language ();
+ _length = DCPTime::from_seconds (sc->latest_subtitle_out().to_seconds ());
+
+ list<shared_ptr<dcp::LoadFont> > fonts = sc->load_font_nodes ();
+ for (list<shared_ptr<dcp::LoadFont> >::const_iterator i = fonts.begin(); i != fonts.end(); ++i) {
+ _fonts.push_back (shared_ptr<Font> (new Font ((*i)->id)));
+ }