# HG changeset patch # User vitor # Date 1214343154 0 # Node ID 1238746e13019003a7c26b927aa2ae8e2647df05 # Parent 6a25c2867e2fed49c1206b8f4e06d6efa8422c64 Simplify interp() diff -r 6a25c2867e2f -r 1238746e1301 ra144.c --- a/ra144.c Tue Jun 24 21:30:09 2008 +0000 +++ b/ra144.c Tue Jun 24 21:32:34 2008 +0000 @@ -301,7 +301,7 @@ } static int interp(RA144Context *ractx, int16_t *out, int block_num, - int copynew, int energy) + int copyold, int energy) { int work[10]; int a = block_num + 1; @@ -316,13 +316,8 @@ if (eval_refl(work, out, ractx)) { // The interpolated coefficients are unstable, copy either new or old // coefficients - if (copynew) { - int_to_int16(out, ractx->lpc_coef[0]); - return rescale_rms(ractx->lpc_refl_rms[0], energy); - } else { - int_to_int16(out, ractx->lpc_coef[1]); - return rescale_rms(ractx->lpc_refl_rms[1], energy); - } + int_to_int16(out, ractx->lpc_coef[copyold]); + return rescale_rms(ractx->lpc_refl_rms[copyold], energy); } else { return rescale_rms(rms(work), energy); } @@ -359,10 +354,10 @@ energy = energy_tab[get_bits(&gb, 5)]; - refl_rms[0] = interp(ractx, block_coefs[0], 0, 0, ractx->old_energy); - refl_rms[1] = interp(ractx, block_coefs[1], 1, energy > ractx->old_energy, + refl_rms[0] = interp(ractx, block_coefs[0], 0, 1, ractx->old_energy); + refl_rms[1] = interp(ractx, block_coefs[1], 1, energy <= ractx->old_energy, t_sqrt(energy*ractx->old_energy) >> 12); - refl_rms[2] = interp(ractx, block_coefs[2], 2, 1, energy); + refl_rms[2] = interp(ractx, block_coefs[2], 2, 0, energy); refl_rms[3] = rescale_rms(ractx->lpc_refl_rms[0], energy); int_to_int16(block_coefs[3], ractx->lpc_coef[0]);