From a2aee820af2137c86dd73cb14e7682c31bb8ca54 Mon Sep 17 00:00:00 2001 From: bnnm Date: Sun, 15 Jan 2017 20:50:07 +0100 Subject: [PATCH] Fixed garbled sounds after seeking in rare cases --- fb2k/in_vgmstream.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/fb2k/in_vgmstream.cpp b/fb2k/in_vgmstream.cpp index 0154fb0a..882d11b2 100644 --- a/fb2k/in_vgmstream.cpp +++ b/fb2k/in_vgmstream.cpp @@ -250,6 +250,11 @@ void input_vgmstream::decode_seek(double p_seconds,abort_callback & p_abort) { int max_buffer_samples = sizeof(sample_buffer)/sizeof(sample_buffer[0])/vgmstream->channels; bool loop_okay = loop_forever && vgmstream->loop_flag && !ignore_loop && !force_ignore_loop; + /* odd number of samples are problematic in some decoders */ + if (seek_pos_samples % 2) { + seek_pos_samples -= 1; + } + int corrected_pos_samples = seek_pos_samples; // adjust for correct position within loop