aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClément Bœsch <u@pkh.me>2015-02-08 14:27:51 +0100
committerClément Bœsch <u@pkh.me>2015-02-12 20:22:02 +0100
commit2c1d5f43cfaa6191690f0682d829bf54614a1b11 (patch)
tree810db617cc774fdaf31c25d84f9fa511b6dfe5f9
parentfa1ca88cb6fcd36b39599c4f2608a774909c1645 (diff)
downloadffmpeg-2c1d5f43cfaa6191690f0682d829bf54614a1b11.tar.gz
avfilter/dctdnoiz: fix slice_h computation
ceilf() can only work if the reminder of the division is not 0. This fixes memory errors with for instance: ffmpeg -f lavfi -i testsrc=s=800x500 -threads 3 -vf dctdnoiz -frames:v 1 -f null - (cherry picked from commit eb7efaa9244720c5f2051d76d76faeec864eca7a)
-rw-r--r--libavfilter/vf_dctdnoiz.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libavfilter/vf_dctdnoiz.c b/libavfilter/vf_dctdnoiz.c
index a9017b1f1c..7246b01d0b 100644
--- a/libavfilter/vf_dctdnoiz.c
+++ b/libavfilter/vf_dctdnoiz.c
@@ -534,7 +534,7 @@ static int config_input(AVFilterLink *inlink)
/* each slice will need to (pre & re)process the top and bottom block of
* the previous one in in addition to its processing area. This is because
* each pixel is averaged by all the surrounding blocks */
- slice_h = (int)ceilf(s->pr_height / s->nb_threads) + (s->bsize - 1) * 2;
+ slice_h = (int)ceilf(s->pr_height / (float)s->nb_threads) + (s->bsize - 1) * 2;
for (i = 0; i < s->nb_threads; i++) {
s->slices[i] = av_malloc_array(linesize, slice_h * sizeof(*s->slices[i]));
if (!s->slices[i])