LibVideo/Matroska: Stop skipping a cue when seeking forward

This would cause seeks where the approximate starting cue index was one
cue before the optimal cue to not change the sample iterator position.
Fixing this issue improves accurate seek speeds significantly.
This commit is contained in:
Zaggy1024 2023-02-05 17:46:57 -06:00 committed by Andreas Kling
parent 448d121304
commit 1f650088a0
Notes: sideshowbarker 2024-07-17 00:36:29 +09:00

View file

@ -798,12 +798,11 @@ DecoderErrorOr<void> Reader::seek_to_cue_for_timestamp(SampleIterator& iterator,
}
while (index < cue_points.size()) {
auto const& cue_point = cue_points[index++];
auto const& cue_point = cue_points[++index];
dbgln_if(MATROSKA_DEBUG, "Checking future cue point {}ms", cue_point.timestamp().to_milliseconds());
if (cue_point.timestamp() > timestamp)
break;
prev_cue_point = &cue_point;
index++;
}
TRY(iterator.seek_to_cue_point(*prev_cue_point));