projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Make KDM output options checkboxes rather than radios (part of #848).
[dcpomatic.git]
/
src
/
lib
/
ffmpeg_subtitle_stream.cc
diff --git
a/src/lib/ffmpeg_subtitle_stream.cc
b/src/lib/ffmpeg_subtitle_stream.cc
index 6028d10a9bd8c7db6efc30e52291fdea329ee0e3..627b0fef1c8b61b6890397c97282f4d42f7700af 100644
(file)
--- a/
src/lib/ffmpeg_subtitle_stream.cc
+++ b/
src/lib/ffmpeg_subtitle_stream.cc
@@
-19,7
+19,7
@@
*/
#include "ffmpeg_subtitle_stream.h"
*/
#include "ffmpeg_subtitle_stream.h"
-#include
"raw_convert.h"
+#include
<dcp/raw_convert.h>
#include <libxml++/libxml++.h>
#include <boost/foreach.hpp>
#include <iostream>
#include <libxml++/libxml++.h>
#include <boost/foreach.hpp>
#include <iostream>
@@
-29,6
+29,7
@@
using std::map;
using std::list;
using std::cout;
using std::make_pair;
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().
/** 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);
}
return subtitles_during (period, starting, _text_subtitles);
}
+struct PeriodSorter
+{
+ bool operator() (ContentTimePeriod const & a, ContentTimePeriod const & b) {
+ return a.from < b.from;
+ }
+};
+
list<ContentTimePeriod>
FFmpegSubtitleStream::subtitles_during (ContentTimePeriod period, bool starting, PeriodMap const & subs) const
{
list<ContentTimePeriod>
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<string, ContentTimePeriod>::const_iterator i = subs.begin(); i != subs.end(); ++i) {
/* XXX: inefficient */
for (map<string, ContentTimePeriod>::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.push_back (i->second);
}
}
+ d.sort (PeriodSorter ());
+
return d;
}
return d;
}