[MPlayer-dev-eng] [PATCH] SDL widescreen modes

Klokan Petr Pridal xpridal at informatics.muni.cz
Thu Jul 4 14:40:12 CEST 2002


Hi,

> > Besides the fact that the code is junk (it has some obvious bugs if I saw
> > correctly, eg = vs. ==), what's the use of it?
> Btw. I think my answer sounds a bit rude, wasn't meant to, sorry!

There was really this error. I'm ashamed, now I got a lammer stamp :-(. I hope it's not forever.
Thanks for your check-up, so the error was not published yet.

Repaired patch is included.

Klokan 
-- 
 (\_/)    Klokan Petr Pridal
 (o o)    ----------------------------
  (.)     student FI MU Brno, webmaster http://www.linux.cz/
 (] [) _  mailto:klokan at seznam.cz
 {~~~}/ ) ICQ:3674202
(')  (')  http://klokan.misto.cz/
 \_)-(_)  Look at http://www.fi.muni.cz/~xpridal/
-------------- next part --------------
--- ../MPlayer-20020610/libvo/vo_sdl.c	Mon Apr 29 09:52:21 2002
+++ libvo/vo_sdl.c	Mon Jun 10 23:40:56 2002
@@ -699,15 +699,26 @@
 		screen_surface_h = priv->XHeight;
 	}
 	else if (mode < 0) {
-        int i;
-		mode = 0; // Default to the biggest mode avaible
+		int i;
+		if (verbose) for(i=0;priv->fullmodes[i];++i) 
+		  printf("Mode: %d:  %d x %d\n", i, priv->fullmodes[i]->w, priv->fullmodes[i]->h);
+		mode = 0; // Default to the biggest mode available
 		for(i = findArrayEnd(priv->fullmodes) - 1; i >=0; i--) {
+		  // Find the smallest suitable, prefer widescreen 
 		  if( (priv->fullmodes[i]->w >= priv->dstwidth) && 
 		      (priv->fullmodes[i]->h >= priv->dstheight) ) {
-		    mode = i;
-		    break;
+		    if( (priv->fullmodes[i-1]->w > priv->fullmodes[i]->w) && 
+		        (priv->fullmodes[i-1]->h == priv->fullmodes[i]->h) && (i != 0)) {
+		      mode = i-1;
+		      break;
+		    }
+		    else { 
+		      mode = i;
+		      break;
+		    }
 		  }
 		}
+		if (verbose) printf("SET Mode: %d:  %d x %d\n", mode, priv->fullmodes[mode]->w, priv->fullmodes[mode]->h);
 		priv->fullmode = mode;
         screen_surface_h = priv->fullmodes[mode]->h;
         screen_surface_w = priv->fullmodes[mode]->w;


More information about the MPlayer-dev-eng mailing list