mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-24 12:09:55 +00:00
ffplay: detect when the created overlay buffers are not valid for the wanted overlay height
Fixes cases when the picture height was bigger than the maximum supported overlay height... Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
parent
87917a3283
commit
30d724bdfd
4
ffplay.c
4
ffplay.c
@ -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"
|
||||
|
Loading…
Reference in New Issue
Block a user