From 1f650088a0b4ae99b793ca13377e7e2238ded8d5 Mon Sep 17 00:00:00 2001 From: Zaggy1024 Date: Sun, 5 Feb 2023 17:46:57 -0600 Subject: [PATCH] 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. --- Userland/Libraries/LibVideo/Containers/Matroska/Reader.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Userland/Libraries/LibVideo/Containers/Matroska/Reader.cpp b/Userland/Libraries/LibVideo/Containers/Matroska/Reader.cpp index ddde35366e..a0e9c780f0 100644 --- a/Userland/Libraries/LibVideo/Containers/Matroska/Reader.cpp +++ b/Userland/Libraries/LibVideo/Containers/Matroska/Reader.cpp @@ -798,12 +798,11 @@ DecoderErrorOr 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));