X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fffmpeg_subtitle_stream.cc;h=627b0fef1c8b61b6890397c97282f4d42f7700af;hb=55861a0b4ad4270f80b8d1ae10230cf2ebb25735;hp=6028d10a9bd8c7db6efc30e52291fdea329ee0e3;hpb=917eaf28db474a4c605eaaa8347a3e9a86b70aa0;p=dcpomatic.git diff --git a/src/lib/ffmpeg_subtitle_stream.cc b/src/lib/ffmpeg_subtitle_stream.cc index 6028d10a9..627b0fef1 100644 --- a/src/lib/ffmpeg_subtitle_stream.cc +++ b/src/lib/ffmpeg_subtitle_stream.cc @@ -19,7 +19,7 @@ */ #include "ffmpeg_subtitle_stream.h" -#include "raw_convert.h" +#include #include #include #include @@ -29,6 +29,7 @@ using std::map; using std::list; using std::cout; using std::make_pair; +using dcp::raw_convert; /** Construct a SubtitleStream from a value returned from to_string(). * @param t String returned from to_string(). @@ -143,6 +144,13 @@ FFmpegSubtitleStream::text_subtitles_during (ContentTimePeriod period, bool star return subtitles_during (period, starting, _text_subtitles); } +struct PeriodSorter +{ + bool operator() (ContentTimePeriod const & a, ContentTimePeriod const & b) { + return a.from < b.from; + } +}; + list FFmpegSubtitleStream::subtitles_during (ContentTimePeriod period, bool starting, PeriodMap const & subs) const { @@ -150,11 +158,13 @@ FFmpegSubtitleStream::subtitles_during (ContentTimePeriod period, bool starting, /* XXX: inefficient */ for (map::const_iterator i = subs.begin(); i != subs.end(); ++i) { - if ((starting && period.contains (i->second.from)) || (!starting && period.overlaps (i->second))) { + if ((starting && period.contains(i->second.from)) || (!starting && period.overlap(i->second))) { d.push_back (i->second); } } + d.sort (PeriodSorter ()); + return d; }