mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Fixed factor for scale filter
This commit is contained in:
parent
7fc4c18463
commit
e395f8de5a
@ -236,6 +236,7 @@ static int config_props(AVFilterLink *outlink)
|
|||||||
double var_values[VARS_NB], res;
|
double var_values[VARS_NB], res;
|
||||||
char *expr;
|
char *expr;
|
||||||
int ret;
|
int ret;
|
||||||
|
int factor_w, factor_h;
|
||||||
|
|
||||||
var_values[VAR_IN_W] = var_values[VAR_IW] = inlink->w;
|
var_values[VAR_IN_W] = var_values[VAR_IW] = inlink->w;
|
||||||
var_values[VAR_IN_H] = var_values[VAR_IH] = inlink->h;
|
var_values[VAR_IN_H] = var_values[VAR_IH] = inlink->h;
|
||||||
@ -273,15 +274,17 @@ static int config_props(AVFilterLink *outlink)
|
|||||||
/* Check if it is requested that the result has to be divisible by a some
|
/* Check if it is requested that the result has to be divisible by a some
|
||||||
* factor (w or h = -n with n being the factor). After we got the factor,
|
* factor (w or h = -n with n being the factor). After we got the factor,
|
||||||
* we set w/h back to -1 so that the automatic scaling is done. */
|
* we set w/h back to -1 so that the automatic scaling is done. */
|
||||||
int factor_w = 1;
|
factor_w = 1;
|
||||||
int factor_h = 1;
|
factor_h = 1;
|
||||||
if (w < -1) {
|
if (w < -1) {
|
||||||
factor_w = -w;
|
factor_w = -w;
|
||||||
w = -1;
|
w = -1;
|
||||||
|
scale->w = -1;
|
||||||
}
|
}
|
||||||
if (h < -1) {
|
if (h < -1) {
|
||||||
factor_h = -h;
|
factor_h = -h;
|
||||||
h = -1;
|
h = -1;
|
||||||
|
scale->h = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (w == -1 && h == -1)
|
if (w == -1 && h == -1)
|
||||||
@ -302,7 +305,6 @@ static int config_props(AVFilterLink *outlink)
|
|||||||
w = (w / factor_w) * factor_w;
|
w = (w / factor_w) * factor_w;
|
||||||
h = (h / factor_h) * factor_h;
|
h = (h / factor_h) * factor_h;
|
||||||
|
|
||||||
|
|
||||||
/* Note that force_original_aspect_ratio may overwrite the previous set
|
/* Note that force_original_aspect_ratio may overwrite the previous set
|
||||||
* dimensions so that it is not divisible by the set factors anymore. */
|
* dimensions so that it is not divisible by the set factors anymore. */
|
||||||
if (scale->force_original_aspect_ratio) {
|
if (scale->force_original_aspect_ratio) {
|
||||||
|
Loading…
Reference in New Issue
Block a user