Fix SDL crash on specific hardware.
authorMike Scheutzow <scheutzow@alcatel-lucent.com>
Tue, 17 Aug 2010 07:47:44 +0000 (07:47 +0000)
committerCarl Eugen Hoyos <cehoyos@rainbow.studorg.tuwien.ac.at>
Tue, 17 Aug 2010 07:47:44 +0000 (07:47 +0000)
Patch by Mike Scheutzow, mjs973 optonline net

Originally committed as revision 24801 to svn://svn.ffmpeg.org/ffmpeg/trunk

ffplay.c

index e5b0cce..8244dfa 100644 (file)
--- a/ffplay.c
+++ b/ffplay.c
@@ -1373,6 +1373,14 @@ static void alloc_picture(void *opaque)
     vp->bmp = SDL_CreateYUVOverlay(vp->width, vp->height,
                                    SDL_YV12_OVERLAY,
                                    screen);
+    if (!vp->bmp || vp->bmp->pitches[0] < vp->width) {
+        /* SDL allocates a buffer smaller than requested if the video
+         * overlay hardware is unable to support the requested size. */
+        fprintf(stderr, "Error: the video system does not support an image\n"
+                        "size of %dx%d pixels. Try using -vf \"scale=w:h\"\n"
+                        "to reduce the image size.\n", vp->width, vp->height );
+        do_exit();
+    }
 
     SDL_LockMutex(is->pictq_mutex);
     vp->allocated = 1;