From 51348d699233d88852f824f3cf8b196fb149ee90 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 30 Oct 2008 08:44:28 +0100 Subject: [PATCH] mpc: fix broken integer sample conversion The conversion of integer samples was completely broken, which presumably didn't annoy anybody because libmpcdec provides float samples on most installations. --- src/decoder/mpc_plugin.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/decoder/mpc_plugin.c b/src/decoder/mpc_plugin.c index 0991913a4..0342794ec 100644 --- a/src/decoder/mpc_plugin.c +++ b/src/decoder/mpc_plugin.c @@ -74,12 +74,10 @@ static inline int16_t convertSample(MPC_SAMPLE_FORMAT sample) #ifdef MPC_FIXED_POINT const int shift = 16 - MPC_FIXED_POINT_SCALE_SHIFT; - if (sample > 0) { - sample <<= shift; - } else if (shift < 0) { - sample >>= -shift; - } - val = sample; + if (shift < 0) + val = sample << -shift; + else + val = sample << shift; #else const int float_scale = 1 << (16 - 1);