From 4a85390d29b614bd5eb5fa3dde1756cf6b5c21b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20B=C5=93sch?= Date: Thu, 30 May 2013 18:13:04 +0200 Subject: [PATCH] lavfi/vignette: make sure a sane sar is set. --- libavfilter/vf_vignette.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/libavfilter/vf_vignette.c b/libavfilter/vf_vignette.c index 892d70c1b3..17af5145cd 100644 --- a/libavfilter/vf_vignette.c +++ b/libavfilter/vf_vignette.c @@ -269,6 +269,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) static int config_props(AVFilterLink *inlink) { VignetteContext *s = inlink->dst->priv; + AVRational sar = inlink->sample_aspect_ratio; s->desc = av_pix_fmt_desc_get(inlink->format); s->var_values[VAR_W] = inlink->w; @@ -277,12 +278,14 @@ static int config_props(AVFilterLink *inlink) s->var_values[VAR_R] = inlink->frame_rate.num == 0 || inlink->frame_rate.den == 0 ? NAN : av_q2d(inlink->frame_rate); - if (inlink->sample_aspect_ratio.num > inlink->sample_aspect_ratio.den) { - s->xscale = av_q2d(inlink->sample_aspect_ratio); + if (!sar.num || !sar.den) + sar.num = sar.den = 1; + if (sar.num > sar.den) { + s->xscale = av_q2d(sar); s->yscale = 1; s->dmax = hypot(inlink->w / 2., s->yscale * inlink->h / 2.); } else { - s->yscale = av_q2d(inlink->sample_aspect_ratio); + s->yscale = av_q2d(sar); s->xscale = 1; s->dmax = hypot(s->xscale * inlink->w / 2., inlink->h / 2.); }