From 1d08e4b584cc8a12fa4b63bc13829f1e6d4f2e55 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Fri, 24 May 2013 17:33:59 +0200 Subject: [PATCH] yadif: fix slice sizes This more evenly distributes the load between threads Signed-off-by: Michael Niedermayer --- libavfilter/vf_yadif.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libavfilter/vf_yadif.c b/libavfilter/vf_yadif.c index 124ef917d3..8cd6f0dc37 100644 --- a/libavfilter/vf_yadif.c +++ b/libavfilter/vf_yadif.c @@ -190,9 +190,8 @@ static int filter_slice(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) int refs = s->cur->linesize[td->plane]; int df = (s->csp->comp[td->plane].depth_minus1 + 8) / 8; int pix_3 = 3 * df; - int slice_h = td->h / nb_jobs; - int slice_start = jobnr * slice_h; - int slice_end = (jobnr == nb_jobs - 1) ? td->h : (jobnr + 1) * slice_h; + int slice_start = (td->h * jobnr ) / nb_jobs; + int slice_end = (td->h * (jobnr+1)) / nb_jobs; int y; /* filtering reads 3 pixels to the left/right; to avoid invalid reads,