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.
This commit is contained in:
Max Kellermann 2008-10-30 08:44:28 +01:00
parent ecd485acbd
commit 51348d6992
1 changed files with 4 additions and 6 deletions

View File

@ -74,12 +74,10 @@ static inline int16_t convertSample(MPC_SAMPLE_FORMAT sample)
#ifdef MPC_FIXED_POINT #ifdef MPC_FIXED_POINT
const int shift = 16 - MPC_FIXED_POINT_SCALE_SHIFT; const int shift = 16 - MPC_FIXED_POINT_SCALE_SHIFT;
if (sample > 0) { if (shift < 0)
sample <<= shift; val = sample << -shift;
} else if (shift < 0) { else
sample >>= -shift; val = sample << shift;
}
val = sample;
#else #else
const int float_scale = 1 << (16 - 1); const int float_scale = 1 << (16 - 1);