diff --git a/libavfilter/vf_scale.c b/libavfilter/vf_scale.c index 1bcacf2a93..23a1f39a88 100644 --- a/libavfilter/vf_scale.c +++ b/libavfilter/vf_scale.c @@ -652,7 +652,8 @@ static int config_props(AVFilterLink *outlink) if (scale->reset_sar) outlink->sample_aspect_ratio = (AVRational){1, 1}; else if (inlink0->sample_aspect_ratio.num){ - outlink->sample_aspect_ratio = av_mul_q((AVRational){outlink->h * inlink0->w, outlink->w * inlink0->h}, inlink0->sample_aspect_ratio); + AVRational q = av_div_q((AVRational){inlink0->w, inlink0->h}, (AVRational){outlink->w, outlink->h}); + outlink->sample_aspect_ratio = av_mul_q(q, inlink0->sample_aspect_ratio); } else outlink->sample_aspect_ratio = inlink0->sample_aspect_ratio;