aboutsummaryrefslogtreecommitdiffstats
path: root/libavfilter/vf_yadif.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-05-24 17:33:59 +0200
committerMichael Niedermayer <michaelni@gmx.at>2013-05-24 17:46:57 +0200
commit1d08e4b584cc8a12fa4b63bc13829f1e6d4f2e55 (patch)
tree3fc2737aad9f5e8585019748ae50f5ebeef12c1a /libavfilter/vf_yadif.c
parent221f902f1dc167bdc0bfdff6b6af3214ae3cc1f4 (diff)
downloadffmpeg-1d08e4b584cc8a12fa4b63bc13829f1e6d4f2e55.tar.gz
yadif: fix slice sizes
This more evenly distributes the load between threads Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavfilter/vf_yadif.c')
-rw-r--r--libavfilter/vf_yadif.c5
1 files 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,