[Mplayer-cvslog] CVS: main/libvo aspecttest.c,NONE,1.1 aspect.c,1.7,1.8
Atmosfear
atmos4 at mplayerhq.hu
Tue May 14 02:22:17 CEST 2002
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
More information about the MPlayer-cvslog
mailing list