[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