Author: andoma Date: Wed Mar 19 14:25:36 2008 New Revision: 2022 Log: The TNS coefficient filter map array must be index by filternumber. Modified: aac/aac.c Modified: aac/aac.c ============================================================================== --- aac/aac.c (original) +++ aac/aac.c Wed Mar 19 14:25:36 2008 @@ -204,7 +204,7 @@ typedef struct { int length[8][4]; int direction[8][4]; int order[8][4]; - const float *tmp2_map[8]; + const float *tmp2_map[8][4]; int coef[8][4][TNS_MAX_ORDER]; } tns_struct; @@ -1233,7 +1233,7 @@ static void tns_data(AACContext * ac, Ge tns->direction[w][filt] = get_bits1(gb); coef_compress = get_bits1(gb); coef_len = coef_res - coef_compress; - tns->tmp2_map[w] = tns_tmp2_map[(coef_compress << 1) + (coef_res - 3)]; + tns->tmp2_map[w][filt] = tns_tmp2_map[(coef_compress << 1) + (coef_res - 3)]; for (i = 0; i < tns->order[w][filt]; i++) tns->coef[w][filt][i] = get_bits(gb, coef_len); } @@ -1746,7 +1746,7 @@ static void tns_filter_tool(AACContext * // tns_decode_coef lpc[0] = 1; for (m = 1; m <= order; m++) { - lpc[m] = tns->tmp2_map[w][tns->coef[w][filt][m - 1]]; + lpc[m] = tns->tmp2_map[w][filt][tns->coef[w][filt][m - 1]]; for (i = 1; i < m; i++) b[i] = lpc[i] + lpc[m] * lpc[m-i]; for (i = 1; i < m; i++)
andoma wrote:
Author: andoma Date: Wed Mar 19 14:25:36 2008 New Revision: 2022
Log: The TNS coefficient filter map array must be index by filternumber.
FYI, this fixes the deviation from one of the failing reference streams. One left to fix though...
participants (2)
-
andoma -
Andreas Öman