summaryrefslogtreecommitdiff
path: root/libavfilter/vf_noise.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-09-12 16:33:21 +0200
committerMichael Niedermayer <michaelni@gmx.at>2013-09-12 17:14:54 +0200
commit51dab60c7b91a21ec280c7d3042aa8350aae048f (patch)
tree9b16e758dd57a139c4394a4eaa6711d48aeda228 /libavfilter/vf_noise.c
parent3eba83daedaf9f57681fc2aca1e3d4032759aee6 (diff)
avfilter/vf_noise: dont corrupt the picture outside width x height
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavfilter/vf_noise.c')
-rw-r--r--libavfilter/vf_noise.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/libavfilter/vf_noise.c b/libavfilter/vf_noise.c
index 9e82976a82..57af5b6650 100644
--- a/libavfilter/vf_noise.c
+++ b/libavfilter/vf_noise.c
@@ -57,6 +57,7 @@ typedef struct {
const AVClass *class;
int nb_planes;
int linesize[4];
+ int bytewidth[4];
int height[4];
FilterParams all;
FilterParams param[4];
@@ -196,6 +197,9 @@ static int config_input(AVFilterLink *inlink)
n->height[1] = n->height[2] = FF_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h);
n->height[0] = n->height[3] = inlink->h;
+ n->bytewidth [1] = n->bytewidth [2] = FF_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w) * ((desc->comp[0].depth_minus1 + 1) / 8);
+ n->bytewidth [0] = n->bytewidth [3] = inlink->w * ((desc->comp[0].depth_minus1 + 1) / 8);
+
return 0;
}
@@ -377,7 +381,7 @@ static int filter_slice(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
noise(td->out->data[plane] + start * td->out->linesize[plane],
td->in->data[plane] + start * td->in->linesize[plane],
td->out->linesize[plane], td->in->linesize[plane],
- s->linesize[plane], start, end, s, plane);
+ s->bytewidth[plane], start, end, s, plane);
}
return 0;
}