28 int firorder,
int iirorder,
30 int blocksize,
int32_t *sample_buffer)
38 for (i = 0; i < blocksize; i++) {
39 int32_t residual = *sample_buffer;
44 for (order = 0; order < firorder; order++)
45 accum += (int64_t) firbuf[order] * fircoeff[order];
46 for (order = 0; order < iirorder; order++)
47 accum += (int64_t) iirbuf[order] * iircoeff[order];
49 accum = accum >> filter_shift;
50 result = (accum + residual) & mask;
53 *--iirbuf = result - accum;
55 *sample_buffer = result;