- }
-
- /* Suggest to our parent decoder that it might want to seek if we haven't got what we're being asked for */
- if (missing) {
- _log->log (String::compose ("SD suggests seek to %1", to_string (*missing)), LogEntry::TYPE_DEBUG_DECODE);
- maybe_seek (*missing, true);
- }
-
- /* Now enough pass() calls will either:
- * (a) give us what we want, or
- * (b) hit the end of the decoder.
- */
- while (!_parent->pass(Decoder::PASS_REASON_SUBTITLE, accurate) && (subs.empty() || (subs.back().period().to < sp.back().to))) {}
-
- /* Now look for what we wanted in the data we have collected */
- /* XXX: inefficient */
-
- list<T> out;
- BOOST_FOREACH (ContentTimePeriod i, sp) {
- typename list<T>::const_iterator j = subs.begin();
- while (j != subs.end() && j->period() != i) {
- ++j;