|
|
@@ -1504,6 +1504,7 @@ display: |
|
|
|
static void alloc_picture(VideoState *is) |
|
|
|
{ |
|
|
|
VideoPicture *vp; |
|
|
|
int64_t bufferdiff; |
|
|
|
|
|
|
|
vp = &is->pictq[is->pictq_windex]; |
|
|
|
|
|
|
@@ -1515,7 +1516,8 @@ static void alloc_picture(VideoState *is) |
|
|
|
vp->bmp = SDL_CreateYUVOverlay(vp->width, vp->height, |
|
|
|
SDL_YV12_OVERLAY, |
|
|
|
screen); |
|
|
|
if (!vp->bmp || vp->bmp->pitches[0] < vp->width) { |
|
|
|
bufferdiff = vp->bmp ? FFMAX(vp->bmp->pixels[0], vp->bmp->pixels[1]) - FFMIN(vp->bmp->pixels[0], vp->bmp->pixels[1]) : 0; |
|
|
|
if (!vp->bmp || vp->bmp->pitches[0] < vp->width || bufferdiff < vp->height * vp->bmp->pitches[0]) { |
|
|
|
/* 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" |
|
|
|