mirror of https://github.com/mpv-player/mpv
Round height or width to valid values when doing automatic calculation.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@6747 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
4a4263763d
commit
e2e5f63009
|
@ -103,13 +103,29 @@ static int config(struct vf_instance_s* vf,
|
|||
}
|
||||
|
||||
// calculate the missing parameters:
|
||||
switch(best) {
|
||||
case IMGFMT_YUY2: /* YUY2 needs w rounded to 2 */
|
||||
if(vf->priv->w==-3) vf->priv->w=(vf->priv->h*width/height+1)&~1; else
|
||||
if(vf->priv->w==-2) vf->priv->w=(vf->priv->h*d_width/d_height+1)&~1;
|
||||
if(vf->priv->h==-3) vf->priv->h=vf->priv->w*height/width; else
|
||||
if(vf->priv->h==-2) vf->priv->h=vf->priv->w*d_height/d_width;
|
||||
break;
|
||||
case IMGFMT_YV12: /* YV12 needs w & h rounded to 2 */
|
||||
if(vf->priv->w==-3) vf->priv->w=(vf->priv->h*width/height+1)&~1; else
|
||||
if(vf->priv->w==-2) vf->priv->w=(vf->priv->h*d_width/d_height+1)&~1;
|
||||
if(vf->priv->h==-3) vf->priv->h=(vf->priv->w*height/width+1)&~1; else
|
||||
if(vf->priv->h==-2) vf->priv->h=(vf->priv->w*d_height/d_width+2)&~1;
|
||||
break;
|
||||
default:
|
||||
if(vf->priv->w==-3) vf->priv->w=vf->priv->h*width/height; else
|
||||
if(vf->priv->w==-2) vf->priv->w=vf->priv->h*d_width/d_height;
|
||||
if(vf->priv->h==-3) vf->priv->h=vf->priv->w*height/width; else
|
||||
if(vf->priv->h==-2) vf->priv->h=vf->priv->w*d_height/d_width;
|
||||
break;
|
||||
}
|
||||
if(vf->priv->w<0) vf->priv->w=width; else
|
||||
if(vf->priv->w==0) vf->priv->w=d_width;
|
||||
|
||||
if(vf->priv->h==-3) vf->priv->h=vf->priv->w*height/width; else
|
||||
if(vf->priv->h==-2) vf->priv->h=vf->priv->w*d_height/d_width;
|
||||
if(vf->priv->h<0) vf->priv->h=height; else
|
||||
if(vf->priv->h==0) vf->priv->h=d_height;
|
||||
|
||||
|
|
Loading…
Reference in New Issue