diff options
author | Aman Gupta <aman@tmm1.net> | 2018-04-10 10:17:52 -0700 |
---|---|---|
committer | Aman Gupta <aman@tmm1.net> | 2018-04-11 16:19:46 -0700 |
commit | 19128408ac3ab6524a9a519c12acef457baef2b9 (patch) | |
tree | 0015aecd7baf33c972155338523095b5bd3c47ee | |
parent | 2108a6736f505d05f38932d57e8d9cfe8a7f7c81 (diff) | |
download | ffmpeg-19128408ac3ab6524a9a519c12acef457baef2b9.tar.gz |
avcodec/mpegpicture: fix "stride changed" failures in gray mode
Before adding uvlinesize check, I was seeing failures decoding
some video with ffmpeg compiled with --enable-gray and using AV_CODEC_FLAG_GRAY.
[mpeg2video @ 0x7fa193818c00] get_buffer() failed (stride changed: linesize=1280/1280 uvlinesize=0/640)
[mpeg2video @ 0x7fa193818c00] get_buffer() failed (stride changed: linesize=1280/1280 uvlinesize=0/640)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r-- | libavcodec/mpegpicture.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/libavcodec/mpegpicture.c b/libavcodec/mpegpicture.c index 2be670cdbc..c0e06900fe 100644 --- a/libavcodec/mpegpicture.c +++ b/libavcodec/mpegpicture.c @@ -148,10 +148,12 @@ static int alloc_frame_buffer(AVCodecContext *avctx, Picture *pic, } } - if (linesize && (linesize != pic->f->linesize[0] || - uvlinesize != pic->f->linesize[1])) { + if ((linesize && linesize != pic->f->linesize[0]) || + (uvlinesize && uvlinesize != pic->f->linesize[1])) { av_log(avctx, AV_LOG_ERROR, - "get_buffer() failed (stride changed)\n"); + "get_buffer() failed (stride changed: linesize=%d/%d uvlinesize=%d/%d)\n", + linesize, pic->f->linesize[0], + uvlinesize, pic->f->linesize[1]); ff_mpeg_unref_picture(avctx, pic); return -1; } |