[FFmpeg-cvslog] ffplay: do not allow wider window than 16383

Marton Balint git at videolan.org
Sat Jun 1 23:58:45 CEST 2013


ffmpeg | branch: master | Marton Balint <cus at passwd.hu> | Wed May 29 23:03:47 2013 +0200| [87917a328320ce77992ed4d87d8825c7216f6f32] | committer: 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: Marton Balint <cus at passwd.hu>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=87917a328320ce77992ed4d87d8825c7216f6f32
---

 ffplay.c |   11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/ffplay.c b/ffplay.c
index ab50db8..125b7c2 100644
--- a/ffplay.c
+++ b/ffplay.c
@@ -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:



More information about the ffmpeg-cvslog mailing list