Browse Source

dont use SDL_WM_ToggleFullScreen() as that doesnt seem to work reliably if a SDL_SetVideoMode() is called quickly afterwards

Originally committed as revision 7390 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.5
Michael Niedermayer 19 years ago
parent
commit
fb84155b67
1 changed files with 13 additions and 16 deletions
  1. +13
    -16
      ffplay.c

+ 13
- 16
ffplay.c View File

@@ -833,22 +833,21 @@ static int video_open(VideoState *is){
int flags = SDL_HWSURFACE|SDL_ASYNCBLIT|SDL_HWACCEL; int flags = SDL_HWSURFACE|SDL_ASYNCBLIT|SDL_HWACCEL;
int w,h; int w,h;


if(is_full_screen) flags |= SDL_FULLSCREEN;
else flags |= SDL_RESIZABLE;

if (is_full_screen && fs_screen_width) { if (is_full_screen && fs_screen_width) {
w = fs_screen_width; w = fs_screen_width;
h = fs_screen_height; h = fs_screen_height;
flags |= SDL_FULLSCREEN;
} else if(!is_full_screen && screen_width){
w = screen_width;
h = screen_height;
}else if (is->video_st && is->video_st->codec->width){
w = is->video_st->codec->width;
h = is->video_st->codec->height;
} else { } else {
if(screen_width){
w = screen_width;
h = screen_height;
}else if (is->video_st && is->video_st->codec->width){
w = is->video_st->codec->width;
h = is->video_st->codec->height;
} else {
w = 640;
h = 480;
}
flags |= SDL_RESIZABLE;
w = 640;
h = 480;
} }
#ifndef CONFIG_DARWIN #ifndef CONFIG_DARWIN
screen = SDL_SetVideoMode(w, h, 0, flags); screen = SDL_SetVideoMode(w, h, 0, flags);
@@ -2147,11 +2146,9 @@ static void toggle_full_screen(void)
is_full_screen = !is_full_screen; is_full_screen = !is_full_screen;
if (!fs_screen_width) { if (!fs_screen_width) {
/* use default SDL method */ /* use default SDL method */
SDL_WM_ToggleFullScreen(screen);
} else {
/* use the recorded resolution */
video_open(cur_stream);
// SDL_WM_ToggleFullScreen(screen);
} }
video_open(cur_stream);
} }


static void toggle_pause(void) static void toggle_pause(void)


Loading…
Cancel
Save