X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fdcp_subtitle_decoder.cc;h=04b264192cd9d43c184449820b9c16213118ed28;hb=ef3f29455d4628d7777843baab5ba0650c122b84;hp=824ddba19dad144d8536e99ac5c276c6218b55db;hpb=a28ef704adf8c5bfa45b3d6285f741af64758ceb;p=dcpomatic.git diff --git a/src/lib/dcp_subtitle_decoder.cc b/src/lib/dcp_subtitle_decoder.cc index 824ddba19..04b264192 100644 --- a/src/lib/dcp_subtitle_decoder.cc +++ b/src/lib/dcp_subtitle_decoder.cc @@ -30,15 +30,7 @@ using boost::bind; DCPSubtitleDecoder::DCPSubtitleDecoder (shared_ptr content, shared_ptr log) { - subtitle.reset ( - new SubtitleDecoder ( - this, - content->subtitle, - log, - bind (&DCPSubtitleDecoder::image_subtitles_during, this, _1, _2), - bind (&DCPSubtitleDecoder::text_subtitles_during, this, _1, _2) - ) - ); + subtitle.reset (new SubtitleDecoder (this, content->subtitle, log)); shared_ptr c (load (content->path (0))); _subtitles = c->subtitles (); @@ -48,7 +40,7 @@ DCPSubtitleDecoder::DCPSubtitleDecoder (shared_ptr con void DCPSubtitleDecoder::seek (ContentTime time, bool accurate) { - subtitle->seek (time, accurate); + Decoder::seek (time, accurate); _next = _subtitles.begin (); list::const_iterator i = _subtitles.begin (); @@ -58,7 +50,7 @@ DCPSubtitleDecoder::seek (ContentTime time, bool accurate) } bool -DCPSubtitleDecoder::pass (PassReason, bool) +DCPSubtitleDecoder::pass () { if (_next == _subtitles.end ()) { return true; @@ -79,37 +71,10 @@ DCPSubtitleDecoder::pass (PassReason, bool) ++_next; } - subtitle->give_text (p, s); - + subtitle->emit_text (p, s); return false; } -list -DCPSubtitleDecoder::image_subtitles_during (ContentTimePeriod, bool) const -{ - return list (); -} - -list -DCPSubtitleDecoder::text_subtitles_during (ContentTimePeriod p, bool starting) const -{ - /* XXX: inefficient */ - - list d; - - for (list::const_iterator i = _subtitles.begin(); i != _subtitles.end(); ++i) { - ContentTimePeriod period = content_time_period (*i); - if ((starting && p.contains(period.from)) || (!starting && p.overlap(period))) { - d.push_back (period); - } - } - - d.sort (); - d.unique (); - - return d; -} - ContentTimePeriod DCPSubtitleDecoder::content_time_period (dcp::SubtitleString s) const {