[FFmpeg-cvslog] Fix internal buffer size for 2bpp and 4bpp raw video.

Carl Eugen Hoyos git at videolan.org
Fri Jul 1 02:43:28 CEST 2011


ffmpeg | branch: master | Carl Eugen Hoyos <cehoyos at ag.or.at> | Fri Jul  1 02:34:33 2011 +0200| [dec126a932c8dc0605054dc3be07791b629cc275] | committer: Carl Eugen Hoyos

Fix internal buffer size for 2bpp and 4bpp raw video.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=dec126a932c8dc0605054dc3be07791b629cc275
---

 libavcodec/rawdec.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

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-cvslog mailing list