diff --git a/lib_enc/cod4t64_fast.c b/lib_enc/cod4t64_fast.c index 1a1383d4121d2d2ffd95ea78bd1978fda445d8d9..93bcc1ce3ffe44ca66128e467dbf5cf03d4c98ac 100644 --- a/lib_enc/cod4t64_fast.c +++ b/lib_enc/cod4t64_fast.c @@ -770,7 +770,30 @@ void acelp_fast_fx( alp_pos3++; } - i = emaximum_32fx( Q_dn, dn, L_subfr, &L_tmp1 ); + Word16 k; + Word64 W_tmp, W_tmp1; + Word64 emax; + + emax = W_mult0_32_32( dn[0], dn[0] ); + i = 0; + move16(); + + FOR( k = 1; k < L_subfr; k++ ) + { + W_tmp = W_mult0_32_32( dn[k], dn[k] ); + W_tmp1 = W_sub( W_tmp, emax ); + if ( W_tmp1 > 0 ) + { + i = k; + move16(); + } + if ( LE_64( emax, W_tmp ) ) + { + emax = W_tmp; + move64(); + } + } + track = i % nb_tracks; move16();