From d539ad5f935f3d554e6c2ff2c1d83db16d14e4d2 Mon Sep 17 00:00:00 2001 From: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca> Date: Mon, 9 Feb 2009 23:54:52 -0500 Subject: [PATCH] Fixed an overflow in the bit allocation table for large frame stereo (need to make that a bit better) --- libcelt/modes.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libcelt/modes.c b/libcelt/modes.c index 6f1937ae9..061a7dfa4 100644 --- a/libcelt/modes.c +++ b/libcelt/modes.c @@ -228,7 +228,7 @@ static void compute_allocation_table(CELTMode *mode, int res) celt_int32_t alloc; edge = mode->eBands[eband+1]*res; alloc = band_allocation[i*BARK_BANDS+j]; - alloc = alloc*C*mode->mdctSize; + alloc = alloc*C*mode->mdctSize/4; if (edge < bark_freq[j+1]) { int num, den; @@ -246,7 +246,7 @@ static void compute_allocation_table(CELTMode *mode, int res) for (i=0;i<mode->nbAllocVectors;i++) { for (j=0;j<mode->nbEBands;j++) - allocVectors[i*mode->nbEBands+j] = (allocVectors[i*mode->nbEBands+j]+128)/256; + allocVectors[i*mode->nbEBands+j] = (allocVectors[i*mode->nbEBands+j]+32)/64; } /*for (i=0;i<mode->nbAllocVectors;i++) { -- GitLab