|
|
|
@ -267,6 +267,7 @@ static int fn(fir_quantum)(AVFilterContext *ctx, AVFrame *out, int ch, int offse |
|
|
|
|
ftype *sumin = (ftype *)seg->sumin->extended_data[ch]; |
|
|
|
|
ftype *sumout = (ftype *)seg->sumout->extended_data[ch]; |
|
|
|
|
int *output_offset = &seg->output_offset[ch]; |
|
|
|
|
const int nb_partitions = seg->nb_partitions; |
|
|
|
|
const int input_offset = seg->input_offset; |
|
|
|
|
const int part_size = seg->part_size; |
|
|
|
|
int j; |
|
|
|
@ -306,7 +307,7 @@ static int fn(fir_quantum)(AVFilterContext *ctx, AVFrame *out, int ch, int offse |
|
|
|
|
|
|
|
|
|
j = seg->part_index[ch]; |
|
|
|
|
|
|
|
|
|
for (int i = 0; i < seg->nb_partitions; i++) { |
|
|
|
|
for (int i = 0; i < nb_partitions; i++) { |
|
|
|
|
const int coffset = j * seg->coeff_size; |
|
|
|
|
const ftype *blockout = (const ftype *)seg->blockout->extended_data[ch] + i * seg->block_size; |
|
|
|
|
const ctype *coeff = (const ctype *)seg->coeff->extended_data[ch * !s->one2many] + coffset; |
|
|
|
@ -317,7 +318,7 @@ static int fn(fir_quantum)(AVFilterContext *ctx, AVFrame *out, int ch, int offse |
|
|
|
|
s->afirdsp.dcmul_add(sumin, blockout, (const ftype *)coeff, part_size); |
|
|
|
|
#endif |
|
|
|
|
if (j == 0) |
|
|
|
|
j = seg->nb_partitions; |
|
|
|
|
j = nb_partitions; |
|
|
|
|
j--; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -331,7 +332,7 @@ static int fn(fir_quantum)(AVFilterContext *ctx, AVFrame *out, int ch, int offse |
|
|
|
|
buf = (ftype *)seg->buffer->extended_data[ch]; |
|
|
|
|
memcpy(buf, sumout + part_size, part_size * sizeof(*buf)); |
|
|
|
|
|
|
|
|
|
seg->part_index[ch] = (seg->part_index[ch] + 1) % seg->nb_partitions; |
|
|
|
|
seg->part_index[ch] = (seg->part_index[ch] + 1) % nb_partitions;; |
|
|
|
|
|
|
|
|
|
memmove(src, src + min_part_size, (seg->input_size - min_part_size) * sizeof(*src)); |
|
|
|
|
|
|
|
|
|