diff options
author | Gyan Doshi <ffmpeg@gyani.pro> | 2020-01-15 21:09:38 +0530 |
---|---|---|
committer | Gyan Doshi <ffmpeg@gyani.pro> | 2020-01-19 11:17:53 +0530 |
commit | 4de2106fbf5301e0f504849f098abc3057f87599 (patch) | |
tree | 2f35c1ca6dcbdc03bf199a076e57cd8bc797dba4 /libavfilter | |
parent | f8990c5f414d4575415e2a3981c3b142222ca3d4 (diff) | |
download | ffmpeg-4de2106fbf5301e0f504849f098abc3057f87599.tar.gz |
avfilter/pad: improve error check for w and h
Target dimensions have to cover entire input.
Diffstat (limited to 'libavfilter')
-rw-r--r-- | libavfilter/vf_pad.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/libavfilter/vf_pad.c b/libavfilter/vf_pad.c index 186d3f028d..e86292eaa2 100644 --- a/libavfilter/vf_pad.c +++ b/libavfilter/vf_pad.c @@ -178,14 +178,14 @@ static int config_input(AVFilterLink *inlink) if (s->y < 0 || s->y + inlink->h > s->h) s->y = var_values[VAR_Y] = (s->h - inlink->h) / 2; + s->w = ff_draw_round_to_sub(&s->draw, 0, -1, s->w); + s->h = ff_draw_round_to_sub(&s->draw, 1, -1, s->h); /* sanity check params */ - if (s->w < 0 || s->h < 0) { - av_log(ctx, AV_LOG_ERROR, "Negative values are not acceptable.\n"); + if (s->w < inlink->w || s->h < inlink->h) { + av_log(ctx, AV_LOG_ERROR, "Padded dimensions cannot be smaller than input dimensions.\n"); return AVERROR(EINVAL); } - s->w = ff_draw_round_to_sub(&s->draw, 0, -1, s->w); - s->h = ff_draw_round_to_sub(&s->draw, 1, -1, s->h); s->x = ff_draw_round_to_sub(&s->draw, 0, -1, s->x); s->y = ff_draw_round_to_sub(&s->draw, 1, -1, s->y); s->in_w = ff_draw_round_to_sub(&s->draw, 0, -1, inlink->w); |