changeset 2213:a98d5300f5e9

Add downscaling as a last resort.
author atmos4
date Mon, 15 Oct 2001 17:22:41 +0000
parents f0f681ef92ff
children 64aa99c04480
files libvo/aspect.c
diffstat 1 files changed, 9 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/libvo/aspect.c	Mon Oct 15 16:59:35 2001 +0000
+++ b/libvo/aspect.c	Mon Oct 15 17:22:41 2001 +0000
@@ -1,5 +1,5 @@
 /* Stuff for correct aspect scaling. */
-#undef ASPECT_DEBUG
+//#define ASPECT_DEBUG
 
 #ifdef ASPECT_DEBUG
 #include <stdio.h>
@@ -12,7 +12,7 @@
  */
 
 void aspect(int *srcw, int *srch, int fitinw, int fitinh){
-  int srcwcp, srchcp;
+  int srcwcp, srchcp, tmp;
   srcwcp=*srcw; srchcp=*srch;
   srcwcp=fitinw;
 #ifdef ASPECT_DEBUG
@@ -26,10 +26,13 @@
   printf("aspect(2) wh: %dx%d (org: %dx%d)\n",srcwcp,srchcp,*srcw,*srch);
 #endif
   if(srchcp>fitinh || srchcp<*srch){
-    srchcp=fitinh;
-    srcwcp=(int)(((float)fitinh / (float)*srch * (float)*srcw)
-              * ((float)fitinw / ((float)fitinh / (1/monitor_aspect))));
-    srcwcp+=srcwcp%2; // round
+    tmp=(int)(((float)fitinh / (float)*srch * (float)*srcw)
+           * ((float)fitinw / ((float)fitinh / (1/monitor_aspect))));
+    if(srcwcp>fitinw){
+      srchcp=fitinh;
+      srcwcp=tmp;
+      srcwcp+=srcwcp%2; // round
+    }
   }
 #ifdef ASPECT_DEBUG
   printf("aspect(3) wh: %dx%d (org: %dx%d)\n",srcwcp,srchcp,*srcw,*srch);