From 96033e4b4e9ed599d8663a4d2d5a9dd586957bab Mon Sep 17 00:00:00 2001 From: Piotr Gozdur Date: Wed, 17 Mar 2010 17:54:21 +0100 Subject: [PATCH] decoder/mpcdec: fix negative shift on fixed-point samples "There is a bug in fixed-point musepack (musepack_src_r435) playback. In floating-point audio is OK but in fixed audio is distorted. I have made a patch for this" --- NEWS | 1 + src/decoder/mpcdec_plugin.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 7723350ff..04fa38936 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,7 @@ ver 0.15.9 (2009/??/??) * decoders: - mad: fix crash when seeking at end of song + - mpcdec: fix negative shift on fixed-point samples * playlist: fix single+repeat in random mode diff --git a/src/decoder/mpcdec_plugin.c b/src/decoder/mpcdec_plugin.c index 26349f93a..b3582c689 100644 --- a/src/decoder/mpcdec_plugin.c +++ b/src/decoder/mpcdec_plugin.c @@ -103,7 +103,7 @@ mpc_to_mpd_sample(MPC_SAMPLE_FORMAT sample) const int shift = bits - MPC_FIXED_POINT_SCALE_SHIFT; if (shift < 0) - val = sample << -shift; + val = sample >> -shift; else val = sample << shift; #else