diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2011-10-27 05:46:09 +0400 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2011-10-27 05:46:09 +0400 |
commit | d7dcd96a2377835a20c3d23b3bd476ddcf1baebb (patch) | |
tree | 0af6d157e92d3bda79e53618455b923d924de9b7 /libavfilter/vf_pad.c | |
parent | d18fd13f301eaa33191d5c2a27e7bba85296137d (diff) |
vf_pad: Fix alignment of get_video_buffer()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavfilter/vf_pad.c')
-rw-r--r-- | libavfilter/vf_pad.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/libavfilter/vf_pad.c b/libavfilter/vf_pad.c index e24cda8e0a..fc4a8be7a3 100644 --- a/libavfilter/vf_pad.c +++ b/libavfilter/vf_pad.c @@ -251,9 +251,10 @@ static int config_output(AVFilterLink *outlink) static AVFilterBufferRef *get_video_buffer(AVFilterLink *inlink, int perms, int w, int h) { PadContext *pad = inlink->dst->priv; + int align = (perms&AV_PERM_ALIGN) ? AVFILTER_ALIGN : 1; AVFilterBufferRef *picref = avfilter_get_video_buffer(inlink->dst->outputs[0], perms, - w + (pad->w - pad->in_w), + w + (pad->w - pad->in_w) + 4*align, h + (pad->h - pad->in_h)); int plane; @@ -264,7 +265,7 @@ static AVFilterBufferRef *get_video_buffer(AVFilterLink *inlink, int perms, int int hsub = (plane == 1 || plane == 2) ? pad->hsub : 0; int vsub = (plane == 1 || plane == 2) ? pad->vsub : 0; - picref->data[plane] += (pad->x >> hsub) * pad->line_step[plane] + + picref->data[plane] += FFALIGN(pad->x >> hsub, align) * pad->line_step[plane] + (pad->y >> vsub) * picref->linesize[plane]; } |