summaryrefslogtreecommitdiff
path: root/libavcodec/ra144.c
diff options
context:
space:
mode:
authorVitor Sessak <vitor1001@gmail.com>2008-06-24 21:32:34 +0000
committerVitor Sessak <vitor1001@gmail.com>2008-06-24 21:32:34 +0000
commitafb40e7277573822d3a8262b2717367e20b0252f (patch)
treed21b631e3d44c7291790b2bd5579ebb5e9f49db0 /libavcodec/ra144.c
parent74adaa3a00ab543a53ba32e1fa8d80661717a400 (diff)
Simplify interp()
Originally committed as revision 13953 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/ra144.c')
-rw-r--r--libavcodec/ra144.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/libavcodec/ra144.c b/libavcodec/ra144.c
index d880c43edc..4e0b2c7a9a 100644
--- a/libavcodec/ra144.c
+++ b/libavcodec/ra144.c
@@ -301,7 +301,7 @@ static int eval_refl(int *refl, const int16_t *coefs, RA144Context *ractx)
}
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 @@ static int interp(RA144Context *ractx, int16_t *out, int block_num,
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 @@ static int ra144_decode_frame(AVCodecContext * avctx, void *vdata,
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]);