int flags = SDL_HWSURFACE|SDL_ASYNCBLIT|SDL_HWACCEL;
int w,h;
+ if(is_full_screen) flags |= SDL_FULLSCREEN;
+ else flags |= SDL_RESIZABLE;
+
if (is_full_screen && fs_screen_width) {
w = fs_screen_width;
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 {
- 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
screen = SDL_SetVideoMode(w, h, 0, flags);
is_full_screen = !is_full_screen;
if (!fs_screen_width) {
/* 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)
if (cur_stream) {
screen = SDL_SetVideoMode(event.resize.w, event.resize.h, 0,
SDL_HWSURFACE|SDL_RESIZABLE|SDL_ASYNCBLIT|SDL_HWACCEL);
- cur_stream->width = event.resize.w;
- cur_stream->height = event.resize.h;
+ screen_width = cur_stream->width = event.resize.w;
+ screen_height= cur_stream->height= event.resize.h;
}
break;
case SDL_QUIT:
void opt_width(const char *arg)
{
screen_width = atoi(arg);
+ if(screen_width<=0){
+ fprintf(stderr, "invalid width\n");
+ exit(1);
+ }
}
void opt_height(const char *arg)
{
screen_height = atoi(arg);
+ if(screen_height<=0){
+ fprintf(stderr, "invalid height\n");
+ exit(1);
+ }
}
static void opt_format(const char *arg)