X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fsubrip_content.cc;h=7a336f88af632d3770eeed3beb3f9cd82b0915e7;hb=c008066160d85b9ec9e5485375d7baaa5d27bda2;hp=48d3528e14d881265dd93466b622038c207492a1;hpb=b299c1873bf23414061d551843275c77a9256a05;p=dcpomatic.git diff --git a/src/lib/subrip_content.cc b/src/lib/subrip_content.cc index 48d3528e1..7a336f88a 100644 --- a/src/lib/subrip_content.cc +++ b/src/lib/subrip_content.cc @@ -20,12 +20,16 @@ #include "subrip_content.h" #include "util.h" #include "subrip.h" +#include "film.h" +#include #include "i18n.h" -using std::stringstream; using std::string; +using std::cout; +using dcp::raw_convert; using boost::shared_ptr; +using boost::lexical_cast; SubRipContent::SubRipContent (shared_ptr film, boost::filesystem::path path) : Content (film, path) @@ -34,20 +38,27 @@ SubRipContent::SubRipContent (shared_ptr film, boost::filesystem::pa } -SubRipContent::SubRipContent (shared_ptr film, shared_ptr node, int) +SubRipContent::SubRipContent (shared_ptr film, cxml::ConstNodePtr node, int version) : Content (film, node) - , SubtitleContent (film, node) + , SubtitleContent (film, node, version) + , _length (node->number_child ("Length")) { } void -SubRipContent::examine (boost::shared_ptr job) +SubRipContent::examine (boost::shared_ptr job, bool calculate_digest) { - Content::examine (job); + Content::examine (job, calculate_digest); SubRip s (shared_from_this ()); + + shared_ptr film = _film.lock (); + assert (film); + + DCPTime len (s.length (), film->active_frame_rate_change (position ())); + boost::mutex::scoped_lock lm (_mutex); - _length = s.length (); + _length = len; } string @@ -65,15 +76,16 @@ SubRipContent::technical_summary () const string SubRipContent::information () const { - + } void -SubRipContent::as_xml (xmlpp::Node* node) +SubRipContent::as_xml (xmlpp::Node* node) const { node->add_child("Type")->add_child_text ("SubRip"); Content::as_xml (node); SubtitleContent::as_xml (node); + node->add_child("Length")->add_child_text (raw_convert (_length.get ())); } DCPTime @@ -84,16 +96,3 @@ SubRipContent::full_length () const */ return _length; } - -string -SubRipContent::identifier () const -{ - LocaleGuard lg; - - stringstream s; - s << Content::identifier() - << "_" << subtitle_scale() - << "_" << subtitle_offset(); - - return s.str (); -}