+ fir_fadd(s, ptr, dst, nb_samples);
+ continue;
+ }
+
+ if (seg->part_size < 8) {
+ memset(dst, 0, sizeof(*dst) * seg->part_size * seg->nb_partitions);
+
+ j = seg->part_index[ch];
+
+ for (i = 0; i < seg->nb_partitions; i++) {
+ const int coffset = j * seg->coeff_size;
+ const FFTComplex *coeff = (const FFTComplex *)seg->coeff->extended_data[ch * !s->one2many] + coffset;
+
+ direct(src, coeff, nb_samples, dst);
+
+ if (j == 0)
+ j = seg->nb_partitions;
+ j--;
+ }
+
+ seg->part_index[ch] = (seg->part_index[ch] + 1) % seg->nb_partitions;
+
+ memmove(src, src + s->min_part_size, (seg->input_size - s->min_part_size) * sizeof(*src));
+