From f69f050a316810dca1f3bce79d5c7ccaa2ea51c0 Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Sun, 13 Dec 2015 17:37:47 +0100 Subject: [PATCH] avfilter/af_sofalizer: fix calculation of split point Signed-off-by: Paul B Mahol --- libavfilter/af_sofalizer.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavfilter/af_sofalizer.c b/libavfilter/af_sofalizer.c index e8698fb9be..5143145043 100644 --- a/libavfilter/af_sofalizer.c +++ b/libavfilter/af_sofalizer.c @@ -652,8 +652,10 @@ static int sofalizer_convolute(AVFilterContext *ctx, void *arg, int jobnr, int n if (read + n_samples < buffer_length) { memcpy(temp_src, bptr + read, n_samples * sizeof(*temp_src)); } else { - memcpy(temp_src, bptr + read, (buffer_length - read) * sizeof(*temp_src)); - memcpy(temp_src + (buffer_length - read), bptr, (read - n_samples) * sizeof(*temp_src)); + int len = FFMIN(n_samples - (read % n_samples), buffer_length - read); + + memcpy(temp_src, bptr + read, len * sizeof(*temp_src)); + memcpy(temp_src + len, bptr, (n_samples - len) * sizeof(*temp_src)); } /* multiply signal and IR, and add up the results */