[Ffmpeg-cvslog] r5477 - in trunk: configure ffplay.c

mru subversion
Wed Jun 14 23:02:55 CEST 2006


Author: mru
Date: Wed Jun 14 23:02:55 2006
New Revision: 5477

Modified:
   trunk/configure
   trunk/ffplay.c

Log:
check for SDL_VideoInfo.current_[wh] availability in configure, and
fall back on SDL_WM_ToggleFullScreen() if not available


Modified: trunk/configure
==============================================================================
--- trunk/configure	(original)
+++ trunk/configure	Wed Jun 14 23:02:55 2006
@@ -1190,15 +1190,23 @@
 #undef main /* We don't want SDL to override our main() */
 int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
 EOF
-    restore_flags
     if test $? = 0; then
         _sdlversion=`"${SDL_CONFIG}" --version | sed 's/[^0-9]//g'`
-        if test "$_sdlversion" -lt 130 ; then
+        if test "$_sdlversion" -lt 121 ; then
             sdl_too_old=yes
         else
             sdl=yes
+            check_cc <<EOF && sdl_video_size=yes || sdl_video_size=no
+#include <SDL.h>
+int main(void){
+    const SDL_VideoInfo *vi = SDL_GetVideoInfo();
+    int w = vi->current_w;
+    return 0;
+}
+EOF
         fi
     fi
+    restore_flags
 fi
 
 ##########################################
@@ -1534,6 +1542,9 @@
   echo "CONFIG_SDL=yes" >> config.mak
   echo "SDL_LIBS=`"${SDL_CONFIG}" --libs`" >> config.mak
   echo "SDL_CFLAGS=`"${SDL_CONFIG}" --cflags`" >> config.mak
+  if test "$sdl_video_size" = "yes"; then
+    echo "#define HAVE_SDL_VIDEO_SIZE 1" >> $TMPH
+  fi
 fi
 if test "$texi2html" = "yes"; then
   echo "BUILD_DOC=yes" >> config.mak

Modified: trunk/ffplay.c
==============================================================================
--- trunk/ffplay.c	(original)
+++ trunk/ffplay.c	Wed Jun 14 23:02:55 2006
@@ -2096,19 +2096,25 @@
 {
     int w, h, flags;
     is_full_screen = !is_full_screen;
-    flags = SDL_HWSURFACE|SDL_ASYNCBLIT|SDL_HWACCEL;
-    if (is_full_screen) {
-        w = fs_screen_width;
-        h = fs_screen_height;
-        flags |= SDL_FULLSCREEN;
+    if (!fs_screen_width) {
+        /* use default SDL method */
+        SDL_WM_ToggleFullScreen(screen);
     } else {
-        w = screen_width;
-        h = screen_height;
-        flags |= SDL_RESIZABLE;
-    }
-    screen = SDL_SetVideoMode(w, h, 0, flags);
-    cur_stream->width = w;
-    cur_stream->height = h;
+        /* use the recorded resolution */
+        flags = SDL_HWSURFACE|SDL_ASYNCBLIT|SDL_HWACCEL;
+        if (is_full_screen) {
+            w = fs_screen_width;
+            h = fs_screen_height;
+            flags |= SDL_FULLSCREEN;
+        } else {
+            w = screen_width;
+            h = screen_height;
+            flags |= SDL_RESIZABLE;
+        }
+        screen = SDL_SetVideoMode(w, h, 0, flags);
+        cur_stream->width = w;
+        cur_stream->height = h;
+    }
 }
 
 void toggle_pause(void)
@@ -2426,10 +2432,11 @@
     }
 
     if (!display_disable) {
+#ifdef HAVE_SDL_VIDEO_SIZE
         const SDL_VideoInfo *vi = SDL_GetVideoInfo();
         fs_screen_width = vi->current_w;
         fs_screen_height = vi->current_h;
-
+#endif
         flags = SDL_HWSURFACE|SDL_ASYNCBLIT|SDL_HWACCEL;
         if (is_full_screen && fs_screen_width) {
             w = fs_screen_width;




More information about the ffmpeg-cvslog mailing list