Merge remote-tracking branch 'qatar/master'
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 31 Dec 2012 13:15:42 +0000 (14:15 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 31 Dec 2012 13:20:01 +0000 (14:20 +0100)
* qatar/master:
  configure: suppress -fPIC in msvc builds
  Drop unnecessary 'l' length modifier when printfing double values.
  truemotion2: Sanitize tm2_read_header()

Conflicts:
libavcodec/truemotion2.c
libavfilter/src_movie.c
libavutil/opt.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
configure
libavcodec/truemotion2.c
libavfilter/vf_frei0r.c
libavfilter/vf_hqdn3d.c

diff --cc configure
Simple merge
@@@ -833,38 -816,41 +836,38 @@@ static int decode_frame(AVCodecContext 
      int buf_size = avpkt->size & ~3;
      TM2Context * const l = avctx->priv_data;
      AVFrame * const p = &l->pic;
-     int i, ret, skip, t;
+     int i, offset = TM2_HEADER_SIZE, t, ret;
 -    uint8_t *swbuf;
  
 -    swbuf = av_malloc(buf_size + FF_INPUT_BUFFER_PADDING_SIZE);
 -    if(!swbuf){
 +    av_fast_padded_malloc(&l->buffer, &l->buffer_size, buf_size);
 +    if(!l->buffer){
          av_log(avctx, AV_LOG_ERROR, "Cannot allocate temporary buffer\n");
 -        return -1;
 +        return AVERROR(ENOMEM);
      }
 -    p->reference = 1;
 +    p->reference = 3;
      p->buffer_hints = FF_BUFFER_HINTS_VALID | FF_BUFFER_HINTS_PRESERVE | FF_BUFFER_HINTS_REUSABLE;
 -    if(avctx->reget_buffer(avctx, p) < 0){
 +    if((ret = avctx->reget_buffer(avctx, p)) < 0){
          av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
 -        av_free(swbuf);
 -        return -1;
 +        return ret;
      }
  
 -    l->dsp.bswap_buf((uint32_t*)swbuf, (const uint32_t*)buf, buf_size >> 2);
 +    l->dsp.bswap_buf((uint32_t*)l->buffer, (const uint32_t*)buf, buf_size >> 2);
-     skip = tm2_read_header(l, l->buffer);
  
-     if(skip == -1){
-         return AVERROR_INVALIDDATA;
 -    if ((ret = tm2_read_header(l, swbuf)) < 0) {
 -        av_free(swbuf);
++    if ((ret = tm2_read_header(l, l->buffer)) < 0) {
+         return ret;
      }
  
      for(i = 0; i < TM2_NUM_STREAMS; i++){
-         if (skip >= buf_size) {
+         if (offset >= buf_size) {
 -            av_free(swbuf);
 +            av_log(avctx, AV_LOG_ERROR, "no space for tm2_read_stream\n");
              return AVERROR_INVALIDDATA;
          }
 -        t = tm2_read_stream(l, swbuf + offset, tm2_stream_order[i],
 +
-         t = tm2_read_stream(l, l->buffer + skip, tm2_stream_order[i], buf_size - skip);
++        t = tm2_read_stream(l, l->buffer + offset, tm2_stream_order[i],
+                             buf_size - offset);
          if(t < 0){
 -            av_free(swbuf);
              return t;
          }
-         skip += t;
+         offset += t;
      }
      p->key_frame = tm2_decode_blocks(l, p);
      if(p->key_frame)
Simple merge
Simple merge