26 int firorder,
int iirorder,
27 unsigned int filter_shift, int32_t
mask,
int blocksize,
28 int32_t *sample_buffer)
30 int32_t *firbuf =
state;
32 const int32_t *fircoeff = coeff;
36 for (i = 0; i < blocksize; i++) {
37 int32_t residual = *sample_buffer;
42 for (order = 0; order < firorder; order++)
43 accum += (int64_t) firbuf[order] * fircoeff[order];
44 for (order = 0; order < iirorder; order++)
45 accum += (int64_t) iirbuf[order] * iircoeff[order];
47 accum = accum >> filter_shift;
48 result = (accum + residual) & mask;
51 *--iirbuf = result - accum;
53 *sample_buffer = result;