From 565140da178e8a0bc425d658d3473798d99fa058 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Fri, 14 Jun 2013 02:08:31 +0200 Subject: [PATCH] avcodec/rawdec: Fix 2bpp and 4bpp rawvideo in mov Restores carefully the old behaviour (and does not break decoding avi samples). Fixes Ticket2536 Signed-off-by: Michael Niedermayer --- libavcodec/rawdec.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/libavcodec/rawdec.c b/libavcodec/rawdec.c index 4da212fed9..54ed52df0f 100644 --- a/libavcodec/rawdec.c +++ b/libavcodec/rawdec.c @@ -133,12 +133,17 @@ static av_cold int raw_init_decoder(AVCodecContext *avctx) memset(context->palette->data, 0, AVPALETTE_SIZE); } - context->frame_size = avpicture_get_size(avctx->pix_fmt, avctx->width, - avctx->height); if ((avctx->bits_per_coded_sample == 4 || avctx->bits_per_coded_sample == 2) && avctx->pix_fmt == AV_PIX_FMT_PAL8 && - (!avctx->codec_tag || avctx->codec_tag == MKTAG('r','a','w',' '))) + (!avctx->codec_tag || avctx->codec_tag == MKTAG('r','a','w',' '))) { context->is_2_4_bpp = 1; + context->frame_size = avpicture_get_size(avctx->pix_fmt, + FFALIGN(avctx->width, 16), + avctx->height); + } else { + context->frame_size = avpicture_get_size(avctx->pix_fmt, avctx->width, + avctx->height); + } if ((avctx->extradata_size >= 9 && !memcmp(avctx->extradata + avctx->extradata_size - 9, "BottomUp", 9)) ||