20 #ifndef LIBSUB_COLLECT_H
21 #define LIBSUB_COLLECT_H
24 #include "raw_subtitle.h"
34 collect (std::vector<RawSubtitle> raw)
36 std::stable_sort (raw.begin(), raw.end());
40 boost::optional<Subtitle> current;
41 for (
auto const& i: raw) {
42 if (current && current->same_metadata(i)) {
44 if (!current->lines.empty() && current->lines.back().same_metadata(i)) {
46 current->lines.back().blocks.push_back(Block(i));
49 current->lines.push_back(Line(i));
54 out.push_back (current.get ());
56 current = Subtitle (i);
61 out.push_back (current.get ());