OSDN Git Service

avcodec/utvideoenc: fix slice_bits size
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 1 Mar 2014 01:40:19 +0000 (02:40 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 1 Mar 2014 01:57:15 +0000 (02:57 +0100)
Fixes assertion failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/utvideoenc.c

index 74b28f9..0db85a8 100644 (file)
@@ -494,7 +494,7 @@ static int encode_plane(AVCodecContext *avctx, uint8_t *src,
          * get the offset in bits and convert to bytes.
          */
         offset += write_huff_codes(dst + sstart * width, c->slice_bits,
-                                   width * (send - sstart), width,
+                                   width * height + 4, width,
                                    send - sstart, he) >> 3;
 
         slice_len = offset - slice_len;
@@ -551,7 +551,7 @@ static int utvideo_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
 
     bytestream2_init_writer(&pb, dst, pkt->size);
 
-    av_fast_padded_malloc(&c->slice_bits, &c->slice_bits_size, width * height);
+    av_fast_padded_malloc(&c->slice_bits, &c->slice_bits_size, width * height + 4);
 
     if (!c->slice_bits) {
         av_log(avctx, AV_LOG_ERROR, "Cannot allocate temporary buffer 2.\n");