Merge remote branch 'qatar/master'
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 27 Apr 2011 01:51:04 +0000 (03:51 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 27 Apr 2011 01:51:04 +0000 (03:51 +0200)
* qatar/master: (23 commits)
  ac3enc: correct the flipped sign in the ac3_fixed encoder
  Eliminate pointless '#if 1' statements without matching '#else'.
  Add AVX FFT implementation.
  Increase alignment of av_malloc() as needed by AVX ASM.
  Update x86inc.asm from x264 to allow AVX emulation using SSE and MMX.
  mjpeg: Detect overreads in mjpeg_decode_scan() and error out.
  documentation: extend documentation for ffmpeg -aspect option
  APIChanges: update commit hashes for recent additions.
  lavc: deprecate FF_*_TYPE macros in favor of AV_PICTURE_TYPE_* enums
  aac: add headers needed for log2f()
  lavc: remove FF_API_MB_Q cruft
  lavc: remove FF_API_RATE_EMU cruft
  lavc: remove FF_API_HURRY_UP cruft
  pad: make the filter parametric
  vsrc_movie: add key_frame and pict_type.
  vsrc_movie: fix leak in request_frame()
  lavfi: add key_frame and pict_type to AVFilterBufferRefVideo.
  vsrc_buffer: add sample_aspect_ratio fields to arguments.
  lavfi: add fieldorder filter
  scale: make the filter parametric
  ...

Conflicts:
Changelog
doc/filters.texi
ffmpeg.c
libavcodec/ac3dec.h
libavcodec/dsputil.c
libavfilter/avfilter.h
libavfilter/vf_scale.c
libavfilter/vf_yadif.c
libavfilter/vsrc_buffer.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
59 files changed:
1  2 
Changelog
doc/APIchanges
ffmpeg.c
ffserver.c
libavcodec/aac.h
libavcodec/aaccoder.c
libavcodec/aacenc.h
libavcodec/aacsbr.c
libavcodec/ac3dec.h
libavcodec/ac3enc.c
libavcodec/ac3enc_fixed.c
libavcodec/atrac1.c
libavcodec/atrac3.c
libavcodec/avcodec.h
libavcodec/binkaudio.c
libavcodec/cook.c
libavcodec/dca.c
libavcodec/dct-test.c
libavcodec/error_resilience.c
libavcodec/fft.c
libavcodec/fft.h
libavcodec/h261dec.c
libavcodec/h263dec.c
libavcodec/h264.c
libavcodec/h264.h
libavcodec/imc.c
libavcodec/motion_est_template.c
libavcodec/mpeg12.c
libavcodec/mpegvideo.c
libavcodec/mpegvideo.h
libavcodec/msmpeg4.c
libavcodec/nellymoserenc.c
libavcodec/options.c
libavcodec/pthread.c
libavcodec/qdm2.c
libavcodec/rv34.c
libavcodec/sh4/qpel.c
libavcodec/snow.c
libavcodec/svq1dec.c
libavcodec/svq3.c
libavcodec/utils.c
libavcodec/vc1dec.c
libavcodec/version.h
libavcodec/wma.h
libavcodec/wmaprodec.c
libavcodec/wmavoice.c
libavcodec/x86/fft.c
libavcodec/x86/fft.h
libavcodec/x86/fft_mmx.asm
libavcodec/x86/fft_sse.c
libavfilter/avfilter.h
libavfilter/vf_scale.c
libavfilter/vf_yadif.c
libavfilter/vsrc_buffer.c
libavformat/nutenc.c
libavutil/avutil.h
libavutil/mem.c
libavutil/pca.c
libavutil/utils.c

diff --cc Changelog
+++ b/Changelog
@@@ -4,13 -4,8 +4,13 @@@ releases are sorted from youngest to ol
  
  version <next>:
  
 +- many many things we forgot because we rather write code than changelogs
 +- libmpcodecs video filter support (3 times as many filters than before)
 +- mpeg2 aspect ratio dection fixed
 +- libxvid aspect pickiness fixed
 +- Frame multithreaded decoding
  - Lots of deprecated API cruft removed
+ - fft and imdct optimizations for AVX (Sandy Bridge) processors
  
  version 0.7_beta1:
  
diff --cc doc/APIchanges
Simple merge
diff --cc ffmpeg.c
Simple merge
diff --cc ffserver.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -201,13 -199,12 +201,13 @@@ typedef struct 
  ///@}
  
  ///@defgroup arrays aligned arrays
-     DECLARE_ALIGNED(16, int,   fixed_coeffs)[AC3_MAX_CHANNELS][AC3_MAX_COEFS];       ///< fixed-point transform coefficients
-     DECLARE_ALIGNED(16, float, transform_coeffs)[AC3_MAX_CHANNELS][AC3_MAX_COEFS];   ///< transform coefficients
-     DECLARE_ALIGNED(16, float, delay)[AC3_MAX_CHANNELS][AC3_BLOCK_SIZE];             ///< delay - added to the next block
-     DECLARE_ALIGNED(16, float, window)[AC3_BLOCK_SIZE];                              ///< window coefficients
-     DECLARE_ALIGNED(16, float, tmp_output)[AC3_BLOCK_SIZE];                          ///< temporary storage for output before windowing
-     DECLARE_ALIGNED(16, float, output)[AC3_MAX_CHANNELS][AC3_BLOCK_SIZE];            ///< output after imdct transform and windowing
-     DECLARE_ALIGNED(16, uint8_t, input_buffer)[AC3_FRAME_BUFFER_SIZE + FF_INPUT_BUFFER_PADDING_SIZE]; ///< temp buffer to prevent overread
+     DECLARE_ALIGNED(16, int,   fixed_coeffs)[AC3_MAX_CHANNELS][AC3_MAX_COEFS];       ///> fixed-point transform coefficients
+     DECLARE_ALIGNED(32, float, transform_coeffs)[AC3_MAX_CHANNELS][AC3_MAX_COEFS];   ///< transform coefficients
+     DECLARE_ALIGNED(32, float, delay)[AC3_MAX_CHANNELS][AC3_BLOCK_SIZE];             ///< delay - added to the next block
+     DECLARE_ALIGNED(32, float, window)[AC3_BLOCK_SIZE];                              ///< window coefficients
+     DECLARE_ALIGNED(32, float, tmp_output)[AC3_BLOCK_SIZE];                          ///< temporary storage for output before windowing
+     DECLARE_ALIGNED(32, float, output)[AC3_MAX_CHANNELS][AC3_BLOCK_SIZE];            ///< output after imdct transform and windowing
++    DECLARE_ALIGNED(32, uint8_t, input_buffer)[AC3_FRAME_BUFFER_SIZE + FF_INPUT_BUFFER_PADDING_SIZE]; ///< temp buffer to prevent overread
  ///@}
  } AC3DecodeContext;
  
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -3006,10 -2849,10 +3002,7 @@@ static int decode_nal_units(H264Contex
                      ff_vdpau_h264_picture_start(s);
              }
  
 -            s->current_picture_ptr->key_frame |=
 -                    (hx->nal_unit_type == NAL_IDR_SLICE) ||
 -                    (h->sei_recovery_frame_cnt >= 0);
              if(hx->redundant_pic_count==0
- #if FF_API_HURRY_UP
-                && hx->s.hurry_up < 5
- #endif
                 && (avctx->skip_frame < AVDISCARD_NONREF || hx->nal_ref_idc)
                 && (avctx->skip_frame < AVDISCARD_BIDIR  || hx->slice_type_nos!=FF_B_TYPE)
                 && (avctx->skip_frame < AVDISCARD_NONKEY || hx->slice_type_nos==FF_I_TYPE)
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -73,10 -71,9 +73,10 @@@ typedef struct 
      int hsub, vsub;             ///< chroma subsampling
      int slice_y;                ///< top of current output slice
      int input_is_pal;           ///< set to 1 if the input format is paletted
 +    int interlaced;
  
-     char w_expr[256];             ///< width  expression string
-     char h_expr[256];             ///< height expression string
+     char w_expr[256];           ///< width  expression string
+     char h_expr[256];           ///< height expression string
  } ScaleContext;
  
  static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque)
@@@ -1,9 -1,10 +1,8 @@@
  /*
   * Copyright (C) 2006-2010 Michael Niedermayer <michaelni@gmx.at>
-  *               2010 James Darnley <james.darnley@gmail.com>
-  * This file is part of FFmpeg.
+  *               2010      James Darnley <james.darnley@gmail.com>
   *
 - * This file is part of Libav.
 - *
 - * Libav is free software; you can redistribute it and/or modify
 + * FFmpeg is free software; you can redistribute it and/or modify
   * it under the terms of the GNU General Public License as published by
   * the Free Software Foundation; either version 2 of the License, or
   * (at your option) any later version.
Simple merge
Simple merge
Simple merge
diff --cc libavutil/mem.c
Simple merge
diff --cc libavutil/pca.c
Simple merge
@@@ -37,5 -37,19 +37,19 @@@ const char *avutil_configuration(void
  const char *avutil_license(void)
  {
  #define LICENSE_PREFIX "libavutil license: "
 -    return LICENSE_PREFIX LIBAV_LICENSE + sizeof(LICENSE_PREFIX) - 1;
 +    return LICENSE_PREFIX FFMPEG_LICENSE + sizeof(LICENSE_PREFIX) - 1;
  }
+ char av_get_picture_type_char(enum AVPictureType pict_type)
+ {
+     switch (pict_type) {
+     case AV_PICTURE_TYPE_I:  return 'I';
+     case AV_PICTURE_TYPE_P:  return 'P';
+     case AV_PICTURE_TYPE_B:  return 'B';
+     case AV_PICTURE_TYPE_S:  return 'S';
+     case AV_PICTURE_TYPE_SI: return 'i';
+     case AV_PICTURE_TYPE_SP: return 'p';
+     case AV_PICTURE_TYPE_BI: return 'b';
+     default:                 return '?';
+     }
+ }