Commit 87917a32 authored by Marton Balint's avatar Marton Balint

ffplay: do not allow wider window than 16383

SDL surface pitch is 16bit, to avoid possible overflows, we limit the window
width to 16383. Fixes ticket #2428.
Signed-off-by: 's avatarMarton Balint <cus@passwd.hu>
parent 3b6f1526
......@@ -1080,6 +1080,7 @@ static int video_open(VideoState *is, int force_set_video_mode, VideoPicture *vp
w = default_width;
h = default_height;
}
w = FFMIN(16383, w);
if (screen && is->width == screen->w && screen->w == w
&& is->height== screen->h && screen->h == h && !force_set_video_mode)
return 0;
......@@ -3249,10 +3250,14 @@ static void event_loop(VideoState *cur_stream)
}
break;
case SDL_VIDEORESIZE:
screen = SDL_SetVideoMode(event.resize.w, event.resize.h, 0,
screen = SDL_SetVideoMode(FFMIN(16383, event.resize.w), event.resize.h, 0,
SDL_HWSURFACE|SDL_RESIZABLE|SDL_ASYNCBLIT|SDL_HWACCEL);
screen_width = cur_stream->width = event.resize.w;
screen_height = cur_stream->height = event.resize.h;
if (!screen) {
fprintf(stderr, "Failed to set video mode\n");
do_exit(cur_stream);
}
screen_width = cur_stream->width = screen->w;
screen_height = cur_stream->height = screen->h;
cur_stream->force_refresh = 1;
break;
case SDL_QUIT:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment