CVS: main/libvo aspecttest.c,NONE,1.1 aspect.c,1.7,1.8
Update of /cvsroot/mplayer/main/libvo In directory mail:/var/tmp.root/cvs-serv2294 Modified Files: aspect.c Added Files: aspecttest.c Log Message: Fix a bug in the aspect coden (roudning at wrong point) and allow donwscaling in second pass. Also add a testapp for the aspect code. --- NEW FILE --- /* testapp for aspect.[ch] by Atmos * gcc aspecttest.c aspect.c -o aspecttest -DASPECT_TEST [-DASPECT_DEBUG] */ #include <stdio.h> #include "aspect.h" /* default zoom state 0 off, 1 on */ #define DEF_ZOOM 1 extern float monitor_aspect; int main(int argc, char *argv[]) { int w,h,z=DEF_ZOOM; //printf("argc: %d\n",argc); switch(argc) { case 10: z = atoi(argv[9]); case 9: monitor_aspect = (float)atoi(argv[7])/(float)atoi(argv[8]); case 7: aspect_save_prescale(atoi(argv[5]),atoi(argv[6])); printf("prescale size: %sx%s\n",argv[5],argv[6]); case 5: aspect_save_screenres(atoi(argv[1]),atoi(argv[2])); printf("screenres: %sx%s\n",argv[1],argv[2]); aspect_save_orig(atoi(argv[3]),atoi(argv[4])); printf("original size: %sx%s\n",argv[3],argv[4]); w=atoi(argv[3]); h=atoi(argv[4]); break; default: printf("USAGE: %s <screenw> <screenh> <origw> <origh>\n[<prescalew> " "<prescaleh>] [<screenaspectw> <screenaspecth>] [<zoom 0/1>]\n", argv[0]); return 1; } printf("monitor_aspect: %f\n",monitor_aspect); aspect(&w,&h,z); printf("new size: %dx%d\n",w,h); return 0; } Index: aspect.c =================================================================== RCS file: /cvsroot/mplayer/main/libvo/aspect.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- aspect.c 18 Oct 2001 02:43:33 -0000 1.7 +++ aspect.c 14 May 2002 00:22:03 -0000 1.8 @@ -1,9 +1,12 @@ /* Stuff for correct aspect scaling. */ #include "aspect.h" +#ifndef ASPECT_TEST +#include "../mp_msg.h" +#endif //#define ASPECT_DEBUG -#ifdef ASPECT_DEBUG +#if defined(ASPECT_DEBUG) || defined(ASPECT_TEST) #include <stdio.h> #endif @@ -64,10 +67,16 @@ else tmpw = (int)((float)aspdat.prew * ((float)aspdat.scrw / ((float)aspdat.scrh / (1.0/monitor_aspect)))); - if(tmpw<=aspdat.scrw && tmpw>=aspdat.orgw){ + tmpw+= tmpw%2; // round + if(tmpw<=aspdat.scrw /*&& tmpw>=aspdat.orgw*/){ *srch = zoom?aspdat.scrh:aspdat.preh; *srcw = tmpw; - *srcw+= *srcw%2; // round + }else{ +#ifndef ASPECT_TEST + mp_msg(MSGT_VO,MSGL_WARN,"aspect: Warning: no suitable new res found!\n"); +#else + printf("error: no new size found that fits into res!\n"); +#endif } } #ifdef ASPECT_DEBUG
participants (1)
-
Atmosfear