[Mplayer-cvslog] CVS: main/libmpcodecs vf_scale.c,1.18,1.19
Kim Minh Kaplan CVS
kmkaplan at mplayerhq.hu
Thu Jul 18 16:06:46 CEST 2002
Update of /cvsroot/mplayer/main/libmpcodecs
In directory mail:/var/tmp.root/cvs-serv26841/libmpcodecs
Modified Files:
vf_scale.c
Log Message:
Round height or width to valid values when doing automatic calculation.
Index: vf_scale.c
===================================================================
RCS file: /cvsroot/mplayer/main/libmpcodecs/vf_scale.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- vf_scale.c 11 Jul 2002 19:16:30 -0000 1.18
+++ vf_scale.c 18 Jul 2002 14:06:32 -0000 1.19
@@ -103,13 +103,29 @@
}
// 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;
More information about the MPlayer-cvslog
mailing list