[FFmpeg-devel] [PATCH]Fix buffer size for 4bpp and 2bpp raw video

Carl Eugen Hoyos cehoyos at ag.or.at
Fri Jul 1 01:36:32 CEST 2011


On Friday 01 July 2011 12:00:11 am Carl Eugen Hoyos wrote:
> Hi!
> 
> Attached patch fixes decoding of some 4bpp and 2bpp samples.

And a fixed version.

Please comment, Carl Eugen
-------------- next part --------------
diff --git a/libavcodec/rawdec.c b/libavcodec/rawdec.c
index 6644d6c..d48cbed 100644
--- a/libavcodec/rawdec.c
+++ b/libavcodec/rawdec.c
@@ -103,13 +103,15 @@ static av_cold int raw_init_decoder(AVCodecContext *avctx)
     }
 
     ff_set_systematic_pal2(context->palette, avctx->pix_fmt);
-    context->length = 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==PIX_FMT_PAL8 &&
        (!avctx->codec_tag || avctx->codec_tag == MKTAG('r','a','w',' '))){
+        context->length = avpicture_get_size(avctx->pix_fmt, (avctx->width+3)&~3, avctx->height);
         context->buffer = av_malloc(context->length);
         if (!context->buffer)
             return -1;
+    } else {
+        context->length = avpicture_get_size(avctx->pix_fmt, avctx->width, avctx->height);
     }
     context->pic.pict_type = AV_PICTURE_TYPE_I;
     context->pic.key_frame = 1;


More information about the ffmpeg-devel mailing list