From ee720278adef386fb12224b7e75940039e6f3a1b Mon Sep 17 00:00:00 2001 From: Thom Johansen Date: Sat, 29 Apr 2006 02:00:14 +0000 Subject: [PATCH] Fix the first-frame memmove from pretending the data is interleaved, which it isn't anymore. This should fix all remaining gapless problems with Musepack. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9827 a1c6a512-1295-4272-9138-f99709370657 --- apps/codecs/libmusepack/mpc_decoder.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/codecs/libmusepack/mpc_decoder.c b/apps/codecs/libmusepack/mpc_decoder.c index ee98722a05..fc1755ff60 100644 --- a/apps/codecs/libmusepack/mpc_decoder.c +++ b/apps/codecs/libmusepack/mpc_decoder.c @@ -435,8 +435,12 @@ mpc_decoder_decode_internal(mpc_decoder *d, MPC_SAMPLE_FORMAT *buffer) output_frame_length -= d->samples_to_skip; memmove( buffer, - buffer + d->samples_to_skip * 2, - output_frame_length * 2 * sizeof (MPC_SAMPLE_FORMAT)); + buffer + d->samples_to_skip, + output_frame_length * sizeof (MPC_SAMPLE_FORMAT)); + memmove( + buffer + MPC_FRAME_LENGTH, + buffer + MPC_FRAME_LENGTH + d->samples_to_skip, + output_frame_length * sizeof (MPC_SAMPLE_FORMAT)); d->samples_to_skip = 0; } }