diff options
Diffstat (limited to 'media/libstagefright/codecs/amrwbenc/src/updt_tar.c')
-rw-r--r-- | media/libstagefright/codecs/amrwbenc/src/updt_tar.c | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/media/libstagefright/codecs/amrwbenc/src/updt_tar.c b/media/libstagefright/codecs/amrwbenc/src/updt_tar.c index 96779fd..ba7c2ff 100644 --- a/media/libstagefright/codecs/amrwbenc/src/updt_tar.c +++ b/media/libstagefright/codecs/amrwbenc/src/updt_tar.c @@ -25,24 +25,25 @@ #include "basic_op.h" void Updt_tar( - Word16 * x, /* (i) Q0 : old target (for pitch search) */ - Word16 * x2, /* (o) Q0 : new target (for codebook search) */ - Word16 * y, /* (i) Q0 : filtered adaptive codebook vector */ - Word16 gain, /* (i) Q14 : adaptive codebook gain */ - Word16 L /* (i) : subframe size */ - ) + Word16 * x, /* (i) Q0 : old target (for pitch search) */ + Word16 * x2, /* (o) Q0 : new target (for codebook search) */ + Word16 * y, /* (i) Q0 : filtered adaptive codebook vector */ + Word16 gain, /* (i) Q14 : adaptive codebook gain */ + Word16 L /* (i) : subframe size */ + ) { - Word32 i; - Word32 L_tmp; - - for (i = 0; i < L; i++) - { - L_tmp = x[i] << 15; - L_tmp -= (y[i] * gain)<<1; - x2[i] = extract_h(L_shl2(L_tmp, 1)); - } - - return; + Word32 i; + Word32 L_tmp, L_tmp2; + + for (i = 0; i < L; i++) + { + L_tmp = x[i] << 15; + L_tmp2 = L_mult(y[i], gain); + L_tmp = L_sub(L_tmp, L_tmp2); + x2[i] = extract_h(L_shl2(L_tmp, 1)); + } + + return; } |