From: Tristan Matthews Date: Fri, 13 Jun 2014 14:57:12 +0000 (-0400) Subject: tiffenc: fix packet size calculation X-Git-Tag: v11_alpha1~350 X-Git-Url: https://git.libav.org/?p=libav.git;a=commitdiff_plain;h=49106844929b7b71ac719064d640f8aa56c89b1f;hp=fe4d5fe9361162f9033ff1bd84bfc1b2091ba785 tiffenc: fix packet size calculation Signed-off-by: Anton Khirnov --- diff --git a/libavcodec/tiffenc.c b/libavcodec/tiffenc.c index ccfb07c5f7..f450edb10f 100644 --- a/libavcodec/tiffenc.c +++ b/libavcodec/tiffenc.c @@ -218,6 +218,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, int is_yuv = 0; uint8_t *yuv_line = NULL; int shift_h, shift_v; + int packet_size; const AVPixFmtDescriptor *pfd; s->avctx = avctx; @@ -288,10 +289,11 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, strips = (s->height - 1) / s->rps + 1; + packet_size = avctx->height * ((avctx->width * s->bpp + 7) >> 3) * 2 + + avctx->height * 4 + FF_MIN_BUFFER_SIZE; + if (!pkt->data && - (ret = av_new_packet(pkt, - avctx->width * avctx->height * s->bpp * 2 + - avctx->height * 4 + FF_MIN_BUFFER_SIZE)) < 0) { + (ret = av_new_packet(pkt, packet_size)) < 0) { av_log(avctx, AV_LOG_ERROR, "Error getting output packet.\n"); return ret; }