diff --git a/src/modules/module-filter-chain/dsp-ops-c.c b/src/modules/module-filter-chain/dsp-ops-c.c index 68b3080e8..30fe8be18 100644 --- a/src/modules/module-filter-chain/dsp-ops-c.c +++ b/src/modules/module-filter-chain/dsp-ops-c.c @@ -63,9 +63,6 @@ void dsp_mix_gain_c(struct dsp_ops *ops, uint32_t i; if (n_src == 0) { dsp_clear_c(ops, dst, n_samples); - } else if (n_src == 1) { - if (dst != src[0]) - dsp_copy_c(ops, dst, src[0], n_samples); } else { if (gain[0] == 1.0f) dsp_copy_c(ops, dst, src[0], n_samples); diff --git a/src/modules/module-filter-chain/dsp-ops-sse.c b/src/modules/module-filter-chain/dsp-ops-sse.c index 4821303d7..9eb94f794 100644 --- a/src/modules/module-filter-chain/dsp-ops-sse.c +++ b/src/modules/module-filter-chain/dsp-ops-sse.c @@ -19,7 +19,7 @@ void dsp_mix_gain_sse(struct dsp_ops *ops, { if (n_src == 0) { memset(dst, 0, n_samples * sizeof(float)); - } else if (n_src == 1) { + } else if (n_src == 1 && gain[0] == 1.0f) { if (dst != src[0]) spa_memcpy(dst, src[0], n_samples * sizeof(float)); } else {