Merge remote-tracking branch 'qatar/master'
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 24 Dec 2012 15:13:06 +0000 (16:13 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 24 Dec 2012 15:20:07 +0000 (16:20 +0100)
* qatar/master:
  wnv1: cosmetics, reformat
  xan: remove a trivially true if().
  ansi: do not depend on get_buffer() initializing the frame.
  zerocodec: remove an unused variable.
  zmbv: remove some pointless comments and empty lines

Conflicts:
libavcodec/xan.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/ansi.c
libavcodec/wnv1.c
libavcodec/xan.c
libavcodec/zmbv.c

@@@ -353,13 -325,14 +353,19 @@@ static int decode_frame(AVCodecContext 
          av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
          return ret;
      }
 -        memset(s->frame.data[0], 0, avctx->height * FFABS(s->frame.linesize[0]));
+     if (!avctx->frame_number) {
++        for (i=0; i<avctx->height; i++)
++            memset(s->frame.data[0]+ i*s->frame.linesize[0], 0, avctx->width);
+         memset(s->frame.data[1], 0, AVPALETTE_SIZE);
+     }
      s->frame.pict_type           = AV_PICTURE_TYPE_I;
      s->frame.palette_has_changed = 1;
 -    memcpy(s->frame.data[1], ff_cga_palette, 16 * 4);
 +    set_palette((uint32_t *)s->frame.data[1]);
 +    if (!s->first_frame) {
 +        erase_screen(avctx);
 +        s->first_frame = 1;
 +    }
  
      while(buf < buf_end) {
          switch(s->state) {
@@@ -62,27 -62,22 +62,27 @@@ static int decode_frame(AVCodecContext 
                          void *data, int *got_frame,
                          AVPacket *avpkt)
  {
-     const uint8_t *buf = avpkt->data;
-     int buf_size = avpkt->size;
      WNV1Context * const l = avctx->priv_data;
-     AVFrame * const p = &l->pic;
+     const uint8_t *buf    = avpkt->data;
+     int buf_size          = avpkt->size;
+     AVFrame * const p     = &l->pic;
      unsigned char *Y,*U,*V;
 -    int i, j;
 +    int i, j, ret;
      int prev_y = 0, prev_u = 0, prev_v = 0;
      uint8_t *rbuf;
  
 +    if(buf_size<=8) {
 +        av_log(avctx, AV_LOG_ERROR, "buf_size %d is too small\n", buf_size);
 +        return AVERROR_INVALIDDATA;
 +    }
 +
      rbuf = av_malloc(buf_size + FF_INPUT_BUFFER_PADDING_SIZE);
-     if(!rbuf){
+     if (!rbuf) {
          av_log(avctx, AV_LOG_ERROR, "Cannot allocate temporary buffer\n");
 -        return -1;
 +        return AVERROR(ENOMEM);
      }
  
-     if(p->data[0])
+     if (p->data[0])
          avctx->release_buffer(avctx, p);
  
      p->reference = 0;
@@@ -140,11 -136,10 +141,11 @@@ static av_cold int decode_init(AVCodecC
      WNV1Context * const l = avctx->priv_data;
      static VLC_TYPE code_table[1 << CODE_VLC_BITS][2];
  
-     l->avctx = avctx;
+     l->avctx       = avctx;
      avctx->pix_fmt = AV_PIX_FMT_YUV422P;
 +    avcodec_get_frame_defaults(&l->pic);
  
-     code_vlc.table = code_table;
+     code_vlc.table           = code_table;
      code_vlc.table_allocated = 1 << CODE_VLC_BITS;
      init_vlc(&code_vlc, CODE_VLC_BITS, 16,
               &code_tab[0][1], 4, 2,
@@@ -518,66 -499,61 +518,65 @@@ static int xan_decode_frame(AVCodecCont
      const uint8_t *buf = avpkt->data;
      int ret, buf_size = avpkt->size;
      XanContext *s = avctx->priv_data;
-     if (avctx->codec->id == AV_CODEC_ID_XAN_WC3) {
-         const uint8_t *buf_end = buf + buf_size;
-         int tag = 0;
-         while (buf_end - buf > 8 && tag != VGA__TAG) {
-             unsigned *tmpptr;
-             uint32_t new_pal;
-             int size;
-             int i;
-             tag  = bytestream_get_le32(&buf);
-             size = bytestream_get_be32(&buf);
-             if(size < 0) {
-                 av_log(avctx, AV_LOG_ERROR, "Invalid tag size %d\n", size);
+     const uint8_t *buf_end = buf + buf_size;
+     int tag = 0;
+     while (buf_end - buf > 8 && tag != VGA__TAG) {
+         unsigned *tmpptr;
+         uint32_t new_pal;
+         int size;
+         int i;
+         tag  = bytestream_get_le32(&buf);
+         size = bytestream_get_be32(&buf);
++        if(size < 0) {
++            av_log(avctx, AV_LOG_ERROR, "Invalid tag size %d\n", size);
++            return AVERROR_INVALIDDATA;
++        }
+         size = FFMIN(size, buf_end - buf);
+         switch (tag) {
+         case PALT_TAG:
+             if (size < PALETTE_SIZE)
                  return AVERROR_INVALIDDATA;
-             }
-             size = FFMIN(size, buf_end - buf);
-             switch (tag) {
-             case PALT_TAG:
-                 if (size < PALETTE_SIZE)
-                     return AVERROR_INVALIDDATA;
-                 if (s->palettes_count >= PALETTES_MAX)
-                     return AVERROR_INVALIDDATA;
-                 tmpptr = av_realloc(s->palettes,
-                                     (s->palettes_count + 1) * AVPALETTE_SIZE);
-                 if (!tmpptr)
-                     return AVERROR(ENOMEM);
-                 s->palettes = tmpptr;
-                 tmpptr += s->palettes_count * AVPALETTE_COUNT;
-                 for (i = 0; i < PALETTE_COUNT; i++) {
+             if (s->palettes_count >= PALETTES_MAX)
+                 return AVERROR_INVALIDDATA;
+             tmpptr = av_realloc(s->palettes,
+                                 (s->palettes_count + 1) * AVPALETTE_SIZE);
+             if (!tmpptr)
+                 return AVERROR(ENOMEM);
+             s->palettes = tmpptr;
+             tmpptr += s->palettes_count * AVPALETTE_COUNT;
+             for (i = 0; i < PALETTE_COUNT; i++) {
  #if RUNTIME_GAMMA
-                     int r = gamma_corr(*buf++);
-                     int g = gamma_corr(*buf++);
-                     int b = gamma_corr(*buf++);
+                 int r = gamma_corr(*buf++);
+                 int g = gamma_corr(*buf++);
+                 int b = gamma_corr(*buf++);
  #else
-                     int r = gamma_lookup[*buf++];
-                     int g = gamma_lookup[*buf++];
-                     int b = gamma_lookup[*buf++];
+                 int r = gamma_lookup[*buf++];
+                 int g = gamma_lookup[*buf++];
+                 int b = gamma_lookup[*buf++];
  #endif
-                     *tmpptr++ = (0xFFU << 24) | (r << 16) | (g << 8) | b;
-                 }
-                 s->palettes_count++;
-                 break;
-             case SHOT_TAG:
-                 if (size < 4)
-                     return AVERROR_INVALIDDATA;
-                 new_pal = bytestream_get_le32(&buf);
-                 if (new_pal < s->palettes_count) {
-                     s->cur_palette = new_pal;
-                 } else
-                     av_log(avctx, AV_LOG_ERROR, "Invalid palette selected\n");
-                 break;
-             case VGA__TAG:
-                 break;
-             default:
-                 buf += size;
-                 break;
 -                *tmpptr++ = (r << 16) | (g << 8) | b;
++                *tmpptr++ = (0xFFU << 24) | (r << 16) | (g << 8) | b;
              }
+             s->palettes_count++;
+             break;
+         case SHOT_TAG:
+             if (size < 4)
+                 return AVERROR_INVALIDDATA;
+             new_pal = bytestream_get_le32(&buf);
+             if (new_pal < s->palettes_count) {
+                 s->cur_palette = new_pal;
+             } else
+                 av_log(avctx, AV_LOG_ERROR, "Invalid palette selected\n");
+             break;
+         case VGA__TAG:
+             break;
+         default:
+             buf += size;
+             break;
          }
-         buf_size = buf_end - buf;
      }
+     buf_size = buf_end - buf;
      if (s->palettes_count <= 0) {
          av_log(s->avctx, AV_LOG_ERROR, "No palette found\n");
          return AVERROR_INVALIDDATA;
Simple merge