audiomixer: support multiple channels when mixing with AVX, SSE and SSE2

This commit is contained in:
Julian Bouzas 2021-09-09 09:28:24 -04:00 committed by Wim Taymans
parent 3f8fb6e4dc
commit 767ac79328
4 changed files with 15 additions and 15 deletions

View file

@ -124,12 +124,12 @@ mix_f32_avx(struct mix_ops *ops, void * SPA_RESTRICT dst, const void * SPA_RESTR
uint32_t i;
if (n_src == 0)
memset(dst, 0, n_samples * sizeof(float));
memset(dst, 0, n_samples * ops->n_channels * sizeof(float));
else if (dst != src[0])
memcpy(dst, src[0], n_samples * sizeof(float));
memcpy(dst, src[0], n_samples * ops->n_channels * sizeof(float));
for (i = 1; i + 2 < n_src; i += 3)
mix_4(dst, src[i], src[i + 1], src[i + 2], n_samples);
for (; i < n_src; i++)
mix_2(dst, src[i], n_samples);
mix_2(dst, src[i], n_samples * ops->n_channels);
}