diff options
author | Piotr Gozdur <piotr_gogo@o2.pl> | 2010-03-17 17:54:21 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2010-03-17 17:54:21 +0100 |
commit | 96033e4b4e9ed599d8663a4d2d5a9dd586957bab (patch) | |
tree | d1e7708ff5fcd27318ea00855fcdad0f78468ae9 | |
parent | 9134169e3792488d6525150e41b8427a3faeda33 (diff) |
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"
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | src/decoder/mpcdec_plugin.c | 2 |
2 files changed, 2 insertions, 1 deletions
@@ -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 |