X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fsubrip_decoder.cc;h=5c6d331dfe66bb3802010657de4ed0be2bd94b71;hb=4f1751a9e43e515be773ee3871150f7beca325f5;hp=77c3f16a5f6d9179385da6272bfdb936e614db09;hpb=7106334071bc2a44b2cb4f27a19052ce78806b77;p=dcpomatic.git diff --git a/src/lib/subrip_decoder.cc b/src/lib/subrip_decoder.cc index 77c3f16a5..5c6d331df 100644 --- a/src/lib/subrip_decoder.cc +++ b/src/lib/subrip_decoder.cc @@ -24,6 +24,7 @@ using std::list; using std::vector; using std::string; +using std::cout; using boost::shared_ptr; using boost::optional; @@ -41,13 +42,13 @@ SubRipDecoder::seek (ContentTime time, bool accurate) SubtitleDecoder::seek (time, accurate); _next = 0; - while (_next < _subtitles.size() && ContentTime::from_seconds (_subtitles[_next].from.metric().get().all_as_seconds ()) < time) { + while (_next < _subtitles.size() && ContentTime::from_seconds (_subtitles[_next].from.all_as_seconds ()) < time) { ++_next; } } bool -SubRipDecoder::pass () +SubRipDecoder::pass (PassReason) { if (_next >= _subtitles.size ()) { return true; @@ -62,15 +63,18 @@ SubRipDecoder::pass () dcp::SubtitleString ( SubRipContent::font_id, j->italic, - dcp::Color (255, 255, 255), + dcp::Colour (255, 255, 255), j->font_size.points (72 * 11), - dcp::Time (rint (_subtitles[_next].from.metric().get().all_as_milliseconds() / 4)), - dcp::Time (rint (_subtitles[_next].to.metric().get().all_as_milliseconds() / 4)), + 1.0, + dcp::Time (_subtitles[_next].from.all_as_seconds()), + dcp::Time (_subtitles[_next].to.all_as_seconds()), + 0, + dcp::HALIGN_CENTER, i->vertical_position.line.get() * (1.5 / 22) + 0.8, - dcp::TOP, + dcp::VALIGN_TOP, j->text, dcp::NONE, - dcp::Color (255, 255, 255), + dcp::Colour (255, 255, 255), 0, 0 ) @@ -84,7 +88,13 @@ SubRipDecoder::pass () } list -SubRipDecoder::subtitles_during (ContentTimePeriod p, bool starting) const +SubRipDecoder::image_subtitles_during (ContentTimePeriod, bool) const +{ + return list (); +} + +list +SubRipDecoder::text_subtitles_during (ContentTimePeriod p, bool starting) const { /* XXX: inefficient */ @@ -93,10 +103,10 @@ SubRipDecoder::subtitles_during (ContentTimePeriod p, bool starting) const for (vector::const_iterator i = _subtitles.begin(); i != _subtitles.end(); ++i) { ContentTimePeriod t ( - ContentTime::from_seconds (i->from.metric().get().all_as_seconds()), - ContentTime::from_seconds (i->to.metric().get().all_as_seconds()) + ContentTime::from_seconds (i->from.all_as_seconds()), + ContentTime::from_seconds (i->to.all_as_seconds()) ); - + if ((starting && p.contains (t.from)) || (!starting && p.overlaps (t))) { d.push_back (t); }