X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Flib%2Fsubrip.cc;h=11ad3302d3659abf107eed8b8fa69d33d8109c69;hb=f4030653da8f5a0b3daebe640f485b3daf9ef091;hp=3eac98e638d22c17a1940a2355abee33a3fe1649;hpb=1f8b45c7fd49714628009f5ed2161fbaa2b4d729;p=dcpomatic.git diff --git a/src/lib/subrip.cc b/src/lib/subrip.cc index 3eac98e63..11ad3302d 100644 --- a/src/lib/subrip.cc +++ b/src/lib/subrip.cc @@ -18,6 +18,7 @@ */ #include +#include #include "subrip.h" #include "subrip_content.h" #include "subrip_subtitle.h" @@ -65,13 +66,18 @@ SubRip::SubRip (shared_ptr content) switch (state) { case COUNTER: { + if (line.empty ()) { + /* a blank line at the start is ok */ + break; + } + int x = 0; try { x = lexical_cast (line); } catch (...) { } - + if (x == next_count) { state = METADATA; ++next_count; @@ -89,8 +95,7 @@ SubRip::SubRip (shared_ptr content) throw SubRipError (line, _("a time/position line"), content->path (0)); } - current->from = convert_time (p[0]); - current->to = convert_time (p[2]); + current->period = ContentTimePeriod (convert_time (p[0]), convert_time (p[2])); if (p.size() > 3) { current->x1 = convert_coordinate (p[3]); @@ -137,7 +142,7 @@ SubRip::convert_time (string t) vector b; boost::algorithm::split (b, a[2], boost::is_any_of (",")); r += ContentTime::from_seconds (lexical_cast (b[0])); - r += ContentTime::from_seconds (lexical_cast (b[1]) / 1000); + r += ContentTime::from_seconds (lexical_cast (b[1]) / 1000); return r; } @@ -232,5 +237,5 @@ SubRip::length () const return ContentTime (); } - return _subtitles.back().to; + return _subtitles.back().period.to; }