Merge remote-tracking branch 'qatar/master'
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 2 Feb 2012 01:02:18 +0000 (02:02 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 2 Feb 2012 01:24:09 +0000 (02:24 +0100)
* qatar/master: (22 commits)
  frwu: Employ more meaningful return values.
  fraps: Use av_fast_padded_malloc() instead of av_realloc()
  mjpegdec: use av_fast_padded_malloc()
  eatqi: use av_fast_padded_malloc()
  asv1: use av_fast_padded_malloc()
  avcodec: Add av_fast_padded_malloc().
  swscale: enable dithering in MMX functions.
  swscale: make rgb24 function macros slightly smaller.
  avcodec.h: Remove some disabled cruft.
  swscale: remove obsolete comment.
  swscale-test: Drop unused argc and argv arguments from main().
  zmbv: Employ more meaningful return values.
  zmbvenc: Employ more meaningful return values.
  vc1: prevent null pointer dereference on broken files
  zmbv: check av_realloc() return values and avoid memleaks on ENOMEM
  truespeech: align buffer
  ac3: Do not read past the end of ff_ac3_band_start_tab.
  dv: Fix small stack overread related to CVE-2011-3929 and CVE-2011-3936.
  dv: Fix null pointer dereference due to ach=0
  dv: check stype
  ...

Conflicts:
doc/APIchanges
libavcodec/asv1.c
libavcodec/avcodec.h
libavcodec/eatqi.c
libavcodec/fraps.c
libavcodec/frwu.c
libavcodec/zmbv.c
libavformat/dv.c
libswscale/swscale.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
17 files changed:
1  2 
doc/APIchanges
libavcodec/ac3dsp.c
libavcodec/asv1.c
libavcodec/avcodec.h
libavcodec/eatqi.c
libavcodec/frwu.c
libavcodec/golomb-test.c
libavcodec/truespeech.c
libavcodec/utils.c
libavcodec/vc1dec.c
libavcodec/zmbv.c
libavcodec/zmbvenc.c
libavformat/dv.c
libavformat/swfdec.c
libswscale/swscale.c
libswscale/x86/input.asm
libswscale/x86/swscale_mmx.c

diff --cc doc/APIchanges
@@@ -13,9 -13,11 +13,14 @@@ libavutil:   2011-04-1
  
  API changes, most recent first:
  
 +2012-01-24 - xxxxxxx - lavfi 2.60.100
 +  Add avfilter_graph_dump.
 +
+ 2012-02-01 - xxxxxxx - lavc 54.01.0
+   Add av_fast_padded_malloc() as alternative for av_realloc() when aligned
+   memory is required. The buffer will always have FF_INPUT_BUFFER_PADDING_SIZE
+   zero-padded bytes at the end.
  2012-01-31 - xxxxxxx - lavf 54.01.0
    Add avformat_get_riff_video_tags() and avformat_get_riff_audio_tags().
  
Simple merge
Simple merge
@@@ -257,14 -244,6 +246,13 @@@ enum CodecID 
      CODEC_ID_DXTORY,
      CODEC_ID_V410,
      CODEC_ID_XWD,
-     CODEC_ID_UTVIDEO = 0x800,
 +    CODEC_ID_Y41P       = MKBETAG('Y','4','1','P'),
 +    CODEC_ID_ESCAPE130  = MKBETAG('E','1','3','0'),
 +    CODEC_ID_AVRP       = MKBETAG('A','V','R','P'),
 +
 +    CODEC_ID_G2M        = MKBETAG( 0 ,'G','2','M'),
 +    CODEC_ID_V308       = MKBETAG('V','3','0','8'),
 +    CODEC_ID_YUV4       = MKBETAG('Y','U','V','4'),
  
      /* various PCM "codecs" */
      CODEC_ID_FIRST_AUDIO = 0x10000,     ///< A dummy id pointing at the start of audio codecs
      CODEC_ID_AAC_LATM,
      CODEC_ID_QDMC,
      CODEC_ID_CELT,
- #if LIBAVCODEC_VERSION_MAJOR > 53
-     CODEC_ID_G723_1_DEPRECATED,
-     CODEC_ID_G729_DEPRECATED,
+     CODEC_ID_G723_1,
+     CODEC_ID_G729,
      CODEC_ID_8SVX_EXP,
      CODEC_ID_8SVX_FIB,
- #endif
      CODEC_ID_BMV_AUDIO,
-     CODEC_ID_G729 = 0x15800,
-     CODEC_ID_G723_1= 0x15801,
 +    CODEC_ID_FFWAVESYNTH = MKBETAG('F','F','W','S'),
 +    CODEC_ID_8SVX_RAW   = MKBETAG('8','S','V','X'),
 +    CODEC_ID_SONIC       = MKBETAG('S','O','N','C'),
 +    CODEC_ID_SONIC_LS    = MKBETAG('S','O','N','L'),
  
      /* subtitle codecs */
      CODEC_ID_FIRST_SUBTITLE = 0x17000,          ///< A dummy ID pointing at the start of subtitle codecs.
Simple merge
@@@ -27,8 -27,8 +27,8 @@@
  static av_cold int decode_init(AVCodecContext *avctx)
  {
      if (avctx->width & 1) {
 -        av_log(avctx, AV_LOG_ERROR, "FRWU needs even width\n");
 +        av_log(avctx, AV_LOG_ERROR, "frwu needs even width\n");
-         return -1;
+         return AVERROR(EINVAL);
      }
      avctx->pix_fmt = PIX_FMT_UYVY422;
  
Simple merge
Simple merge
@@@ -89,9 -82,9 +89,9 @@@ void av_fast_malloc(void *ptr, unsigne
  
  void av_fast_padded_malloc(void *ptr, unsigned int *size, size_t min_size)
  {
 -    void **p = ptr;
 +    uint8_t **p = ptr;
      if (min_size > SIZE_MAX - FF_INPUT_BUFFER_PADDING_SIZE) {
-         *p = NULL;
+         av_freep(p);
          *size = 0;
          return;
      }
@@@ -1445,16 -1314,6 +1445,16 @@@ av_cold int avcodec_close(AVCodecContex
      return 0;
  }
  
-         case CODEC_ID_G723_1_DEPRECATED : return CODEC_ID_G723_1;
-         case CODEC_ID_G729_DEPRECATED   : return CODEC_ID_G729;
-         case CODEC_ID_UTVIDEO_DEPRECATED: return CODEC_ID_UTVIDEO;
 +static enum CodecID remap_deprecated_codec_id(enum CodecID id)
 +{
 +    switch(id){
++        //This is for future deprecatec codec ids, its empty since
++        //last major bump but will fill up again over time, please dont remove it
++//         case CODEC_ID_UTVIDEO_DEPRECATED: return CODEC_ID_UTVIDEO;
 +        default                         : return id;
 +    }
 +}
 +
  AVCodec *avcodec_find_encoder(enum CodecID id)
  {
      AVCodec *p, *experimental=NULL;
Simple merge
@@@ -408,11 -409,11 +409,11 @@@ static int decode_frame(AVCodecContext 
      if (c->pic.data[0])
              avctx->release_buffer(avctx, &c->pic);
  
 -    c->pic.reference = 1;
 +    c->pic.reference = 3;
      c->pic.buffer_hints = FF_BUFFER_HINTS_VALID;
-     if (avctx->get_buffer(avctx, &c->pic) < 0) {
+     if ((ret = avctx->get_buffer(avctx, &c->pic)) < 0) {
          av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
-         return -1;
+         return ret;
      }
  
      /* parse header */
              c->decode_xor = zmbv_decode_xor_32;
              break;
          default:
 -            c->decode_intra = NULL;
              c->decode_xor = NULL;
-             av_log(avctx, AV_LOG_ERROR,
-                    "Unsupported (for now) format %i\n", c->fmt);
-             return -1;
+             av_log_ask_for_sample(avctx, "Unsupported (for now) format %i\n",
+                                   c->fmt);
+             return AVERROR_PATCHWELCOME;
          }
  
          zret = inflateReset(&c->zstream);
          if (zret != Z_OK) {
              av_log(avctx, AV_LOG_ERROR, "Inflate reset error: %d\n", zret);
              return -1;
 -         }
 -
 -         tmp = av_realloc(c->cur,  avctx->width * avctx->height * (c->bpp / 8));
 -         if (!tmp)
 -             return AVERROR(ENOMEM);
 -         c->cur = tmp;
 -         tmp = av_realloc(c->prev, avctx->width * avctx->height * (c->bpp / 8));
 -         if (!tmp)
 -             return AVERROR(ENOMEM);
 -         c->prev = tmp;
 -         c->bx = (c->width + c->bw - 1) / c->bw;
 -         c->by = (c->height+ c->bh - 1) / c->bh;
 -     }
 +        }
 +
 +        c->cur  = av_realloc_f(c->cur, avctx->width * avctx->height,  (c->bpp / 8));
 +        c->prev = av_realloc_f(c->prev, avctx->width * avctx->height,  (c->bpp / 8));
 +        c->bx = (c->width + c->bw - 1) / c->bw;
 +        c->by = (c->height+ c->bh - 1) / c->bh;
 +        if (!c->cur || !c->prev)
 +            return -1;
 +        c->decode_intra= decode_intra;
 +    }
  
-     if (c->decode_intra == NULL) {
-         av_log(avctx, AV_LOG_ERROR, "Error! Got no format or no keyframe!\n");
-         return -1;
-     }
+      if (c->decode_intra == NULL) {
+          av_log(avctx, AV_LOG_ERROR, "Error! Got no format or no keyframe!\n");
+          return AVERROR_INVALIDDATA;
+      }
  
 -     if (c->comp == 0) { //Uncompressed data
 -         memcpy(c->decomp_buf, buf, len);
 -         c->decomp_size = 1;
 -     } else { // ZLIB-compressed data
 +    if (c->comp == 0) { //Uncompressed data
 +        memcpy(c->decomp_buf, buf, len);
 +        c->decomp_size = 1;
 +    } else { // ZLIB-compressed data
          c->zstream.total_in = c->zstream.total_out = 0;
          c->zstream.next_in = buf;
          c->zstream.avail_in = len;
Simple merge
Simple merge
Simple merge
@@@ -1736,9 -1610,7 +1736,7 @@@ static void monoblack2Y_c(int16_t *dst
      }
  }
  
- //FIXME yuy2* can read up to 7 samples too much
 -static void yuy2ToY_c(uint8_t *dst, const uint8_t *src, int width,
 +static void yuy2ToY_c(uint8_t *dst, const uint8_t *src, const uint8_t *unused1, const uint8_t *unused2,  int width,
                        uint32_t *unused)
  {
      int i;
Simple merge
Simple merge