|
|
|
@@ -1681,12 +1681,9 @@ unsigned int ff_rescale_rms(unsigned int rms, unsigned int energy) |
|
|
|
} |
|
|
|
|
|
|
|
/** inverse root mean square */ |
|
|
|
int ff_irms(const int16_t *data) |
|
|
|
int ff_irms(DSPContext *dsp, const int16_t *data) |
|
|
|
{ |
|
|
|
unsigned int i, sum = 0; |
|
|
|
|
|
|
|
for (i=0; i < BLOCKSIZE; i++) |
|
|
|
sum += data[i] * data[i]; |
|
|
|
unsigned int sum = dsp->scalarproduct_int16(data, data, BLOCKSIZE); |
|
|
|
|
|
|
|
if (sum == 0) |
|
|
|
return 0; /* OOPS - division by zero */ |
|
|
|
@@ -1698,14 +1695,13 @@ void ff_subblock_synthesis(RA144Context *ractx, const int16_t *lpc_coefs, |
|
|
|
int cba_idx, int cb1_idx, int cb2_idx, |
|
|
|
int gval, int gain) |
|
|
|
{ |
|
|
|
int16_t buffer_a[BLOCKSIZE]; |
|
|
|
int16_t *block; |
|
|
|
int m[3]; |
|
|
|
|
|
|
|
if (cba_idx) { |
|
|
|
cba_idx += BLOCKSIZE/2 - 1; |
|
|
|
ff_copy_and_dup(buffer_a, ractx->adapt_cb, cba_idx); |
|
|
|
m[0] = (ff_irms(buffer_a) * gval) >> 12; |
|
|
|
ff_copy_and_dup(ractx->buffer_a, ractx->adapt_cb, cba_idx); |
|
|
|
m[0] = (ff_irms(&ractx->dsp, ractx->buffer_a) * gval) >> 12; |
|
|
|
} else { |
|
|
|
m[0] = 0; |
|
|
|
} |
|
|
|
@@ -1716,7 +1712,7 @@ void ff_subblock_synthesis(RA144Context *ractx, const int16_t *lpc_coefs, |
|
|
|
|
|
|
|
block = ractx->adapt_cb + BUFFERSIZE - BLOCKSIZE; |
|
|
|
|
|
|
|
add_wav(block, gain, cba_idx, m, cba_idx? buffer_a: NULL, |
|
|
|
add_wav(block, gain, cba_idx, m, cba_idx? ractx->buffer_a: NULL, |
|
|
|
ff_cb1_vects[cb1_idx], ff_cb2_vects[cb2_idx]); |
|
|
|
|
|
|
|
memcpy(ractx->curr_sblock, ractx->curr_sblock + BLOCKSIZE, |
|
|
|
|