LibAudio: Don't return a seek point if it is after the desired sample

If the seek table was incomplete, without any seek points available
before the target point, `SeekTable::seek_point_before()` would instead
return the first seek point after the target. Check whether the seek
point is before the target before returning it.
This commit is contained in:
Zaggy1024 2023-07-04 19:02:54 -05:00 committed by Linus Groh
parent 42675971e2
commit a8dc97d95d
Notes: sideshowbarker 2024-07-17 11:30:05 +09:00

View file

@ -40,6 +40,8 @@ Optional<SeekPoint const&> SeekTable::seek_point_before(u64 sample_index) const
++nearby_seek_point_index;
while (nearby_seek_point_index > 0 && m_seek_points[nearby_seek_point_index].sample_index > sample_index)
--nearby_seek_point_index;
if (m_seek_points[nearby_seek_point_index].sample_index > sample_index)
return {};
return m_seek_points[nearby_seek_point_index];
}