diff options
-rw-r--r-- | libmpcodecs/vf_expand.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libmpcodecs/vf_expand.c b/libmpcodecs/vf_expand.c index 605ee5dc88..922c20cf90 100644 --- a/libmpcodecs/vf_expand.c +++ b/libmpcodecs/vf_expand.c @@ -184,11 +184,12 @@ static int config(struct vf_instance_s* vf, else if( vf->priv->exp_h<height ) vf->priv->exp_h=height; #endif if (vf->priv->aspect) { - vf->priv->aspect *= ((double)width/height) / ((double)d_width/d_height); - if (vf->priv->exp_h < vf->priv->exp_w / vf->priv->aspect) { - vf->priv->exp_h = vf->priv->exp_w / vf->priv->aspect + 0.5; + float adjusted_aspect = vf->priv->aspect; + adjusted_aspect *= ((double)width/height) / ((double)d_width/d_height); + if (vf->priv->exp_h < vf->priv->exp_w / adjusted_aspect) { + vf->priv->exp_h = vf->priv->exp_w / adjusted_aspect + 0.5; } else { - vf->priv->exp_w = vf->priv->exp_h * vf->priv->aspect + 0.5; + vf->priv->exp_w = vf->priv->exp_h * adjusted_aspect + 0.5; } } if (vf->priv->round > 1) { // round up. |