mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avfilter/vf_scale: do aspect ratio and scale factor compensation together
Fixes rounding error Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
682ddb89cf
commit
1e48c39ece
@ -295,16 +295,14 @@ static int config_props(AVFilterLink *outlink)
|
||||
w = inlink->w;
|
||||
if (!(h = scale->h))
|
||||
h = inlink->h;
|
||||
if (w == -1)
|
||||
w = av_rescale(h, inlink->w, inlink->h);
|
||||
if (h == -1)
|
||||
h = av_rescale(w, inlink->h, inlink->w);
|
||||
|
||||
/* Make sure that the result is divisible by the factor we determined
|
||||
* earlier. If no factor was set, it is nothing will happen as the default
|
||||
* factor is 1 */
|
||||
w = (w / factor_w) * factor_w;
|
||||
h = (h / factor_h) * factor_h;
|
||||
if (w == -1)
|
||||
w = av_rescale(h, inlink->w, inlink->h * factor_w) * factor_w;
|
||||
if (h == -1)
|
||||
h = av_rescale(w, inlink->h, inlink->w * factor_h) * factor_h;
|
||||
|
||||
/* Note that force_original_aspect_ratio may overwrite the previous set
|
||||
* dimensions so that it is not divisible by the set factors anymore. */
|
||||
|
Loading…
Reference in New Issue
Block a user