avfilter/af_afir: workaround nonsense limitation in vector_fmul_scalar()
authorPaul B Mahol <onemda@gmail.com>
Wed, 10 May 2017 18:07:30 +0000 (20:07 +0200)
committerPaul B Mahol <onemda@gmail.com>
Wed, 10 May 2017 18:10:02 +0000 (20:10 +0200)
Signed-off-by: Paul B Mahol <onemda@gmail.com>
libavfilter/af_afir.c

index d85c707..c4443fd 100644 (file)
@@ -68,7 +68,7 @@ static int fir_channel(AVFilterContext *ctx, void *arg, int ch, int nb_jobs)
     block = s->block[ch] + s->part_index * s->block_size;
     memset(block, 0, sizeof(*block) * s->fft_length);
 
-    s->fdsp->vector_fmul_scalar(block + s->part_size, src, s->dry_gain, s->nb_samples);
+    s->fdsp->vector_fmul_scalar(block + s->part_size, src, s->dry_gain, FFALIGN(s->nb_samples, 4));
     emms_c();
 
     av_rdft_calc(s->rdft[ch], block);
@@ -105,7 +105,7 @@ static int fir_channel(AVFilterContext *ctx, void *arg, int ch, int nb_jobs)
 
     if (out) {
         float *ptr = (float *)out->extended_data[ch];
-        s->fdsp->vector_fmul_scalar(ptr, dst, s->gain * s->wet_gain, out->nb_samples);
+        s->fdsp->vector_fmul_scalar(ptr, dst, s->gain * s->wet_gain, FFALIGN(out->nb_samples, 4));
         emms_c();
     }