aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAman Gupta <aman@tmm1.net>2018-04-10 10:17:52 -0700
committerAman Gupta <aman@tmm1.net>2018-04-11 16:19:46 -0700
commit19128408ac3ab6524a9a519c12acef457baef2b9 (patch)
tree0015aecd7baf33c972155338523095b5bd3c47ee
parent2108a6736f505d05f38932d57e8d9cfe8a7f7c81 (diff)
downloadffmpeg-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.c8
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;
}