summaryrefslogtreecommitdiffstats
path: root/libfaad2
diff options
context:
space:
mode:
authorrfelker <rfelker@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-04-05 05:43:41 +0000
committerrfelker <rfelker@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-04-05 05:43:41 +0000
commitc0adf2ff07d4520d7a568fb97a27d78af0f12da4 (patch)
tree8ebdc71724af7e94bfca38dbc2fb9e7b37e5401d /libfaad2
parentef714f38cafc6d44d9729e36f988f6333c55f9d1 (diff)
downloadmpv-c0adf2ff07d4520d7a568fb97a27d78af0f12da4.tar.bz2
mpv-c0adf2ff07d4520d7a568fb97a27d78af0f12da4.tar.xz
10l, integer overflow. who uses 14 fractional bits?! only faad developers.... *sigh*
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@15055 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libfaad2')
-rw-r--r--libfaad2/output.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libfaad2/output.c b/libfaad2/output.c
index 6b882ad6d1..792909c146 100644
--- a/libfaad2/output.c
+++ b/libfaad2/output.c
@@ -573,10 +573,10 @@ void* output_to_PCM(NeAACDecHandle hDecoder,
for(i = 0; i < frame_len; i++)
{
int32_t tmp;
- tmp = ((ch1[i]<<2) + ((ch0[i]+ch3[i])<<1) + (ch0[i]+ch3[i]) + (1<<(REAL_BITS+2))) >> (REAL_BITS+3);
+ tmp = (ch1[i] + ((ch0[i]+ch3[i])>>1) + ((ch0[i]+ch3[i])>>2) + (1<<(REAL_BITS))) >> (REAL_BITS+1);
if ((tmp+0x8000) & ~0xffff) tmp = ~(tmp>>31)-0x8000;
short_sample_buffer[0] = tmp;
- tmp = ((ch2[i]<<2) + ((ch0[i]+ch4[i])<<1) + (ch0[i]+ch4[i]) + (1<<(REAL_BITS+2))) >> (REAL_BITS+3);
+ tmp = (ch2[i] + ((ch0[i]+ch4[i])>>1) + ((ch0[i]+ch4[i])>>2) + (1<<(REAL_BITS))) >> (REAL_BITS+1);
if ((tmp+0x8000) & ~0xffff) tmp = ~(tmp>>31)-0x8000;
short_sample_buffer[1] = tmp;
short_sample_buffer += channels;