avcodec/aacps_fixed_tablegen: change f_center to 64bit to avoid overflow

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
Michael Niedermayer 2015-07-25 22:07:41 +02:00
parent e171309756
commit c105e0f077

View File

@ -349,7 +349,8 @@ static void ps_tableinit(void)
} }
for (k = 0; k < NR_ALLPASS_BANDS20; k++) { for (k = 0; k < NR_ALLPASS_BANDS20; k++) {
int theta, f_center; int theta;
int64_t f_center;
int c, s; int c, s;
if (k < FF_ARRAY_ELEMS(f_center_20)) if (k < FF_ARRAY_ELEMS(f_center_20))
@ -377,7 +378,7 @@ static void ps_tableinit(void)
if (k < FF_ARRAY_ELEMS(f_center_34)) if (k < FF_ARRAY_ELEMS(f_center_34))
f_center = f_center_34[k]; f_center = f_center_34[k];
else else
f_center = (k << 26) - (53 << 25); f_center = ((int64_t)k << 26) - (53 << 25);
for (m = 0; m < PS_AP_LINKS; m++) { for (m = 0; m < PS_AP_LINKS; m++) {
theta = (int)(((int64_t)fractional_delay_links[m] * f_center + 0x10000000) >> 27); theta = (int)(((int64_t)fractional_delay_links[m] * f_center + 0x10000000) >> 27);