Merge commit '49106844929b7b71ac719064d640f8aa56c89b1f'
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 17 Jun 2014 23:29:19 +0000 (01:29 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 17 Jun 2014 23:29:19 +0000 (01:29 +0200)
* commit '49106844929b7b71ac719064d640f8aa56c89b1f':
  tiffenc: fix packet size calculation

Conflicts:
libavcodec/tiffenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/tiffenc.c

@@@ -232,12 -209,19 +232,13 @@@ static int encode_frame(AVCodecContext 
      uint8_t *ptr;
      uint8_t *offset;
      uint32_t strips;
 -    uint32_t *strip_sizes   = NULL;
 -    uint32_t *strip_offsets = NULL;
      int bytes_per_row;
 -    uint32_t res[2]    = { 72, 1 };     // image resolution (72/1)
 -    uint16_t bpp_tab[] = { 8, 8, 8, 8 };
 -    int ret;
 -    int is_yuv = 0;
 -    uint8_t *yuv_line = NULL;
 +    uint32_t res[2] = { s->dpi, 1 };    // image resolution (72/1)
 +    uint16_t bpp_tab[4];
 +    int ret = -1;
 +    int is_yuv = 0, alpha = 0;
      int shift_h, shift_v;
 -    const AVPixFmtDescriptor *pfd;
 -
 -    s->avctx = avctx;
+     int packet_size;
  
      s->width          = avctx->width;
      s->height         = avctx->height;
  
      strips = (s->height - 1) / s->rps + 1;
  
-     if ((ret = ff_alloc_packet2(avctx, pkt,
-                              avctx->width * avctx->height * s->bpp * 2 +
-                              avctx->height * 4 + FF_MIN_BUFFER_SIZE)) < 0)
+     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, packet_size)) < 0) {
 -        av_log(avctx, AV_LOG_ERROR, "Error getting output packet.\n");
++    if ((ret = ff_alloc_packet2(avctx, pkt, packet_size)) < 0)
          return ret;
 -    }
      ptr          = pkt->data;
      s->buf_start = pkt->data;
      s->buf       = &ptr;