Merge commit '620289a20e022b9c16c10d546ef86cc0bb77cc84'
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 6 Feb 2013 12:27:24 +0000 (13:27 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 6 Feb 2013 12:27:24 +0000 (13:27 +0100)
* commit '620289a20e022b9c16c10d546ef86cc0bb77cc84':
  sh4: Fix silly type vs. variable name search and replace typo
  configure: Group all hwaccels together in a separate variable
  Add av_cold attributes to arch-specific init functions

Conflicts:
configure
libavcodec/arm/mpegvideo_armv5te.c
libavcodec/x86/mlpdsp.c
libavcodec/x86/motion_est.c
libavcodec/x86/mpegvideoenc.c
libavcodec/x86/videodsp_init.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
52 files changed:
1  2 
configure
libavcodec/alpha/dsputil_alpha.c
libavcodec/alpha/mpegvideo_alpha.c
libavcodec/arm/dsputil_init_arm.c
libavcodec/arm/dsputil_init_neon.c
libavcodec/arm/fmtconvert_init_arm.c
libavcodec/arm/h264dsp_init_arm.c
libavcodec/arm/h264pred_init_arm.c
libavcodec/arm/h264qpel_init_arm.c
libavcodec/arm/mpegvideo_arm.c
libavcodec/arm/mpegvideo_armv5te.c
libavcodec/arm/rv34dsp_init_arm.c
libavcodec/arm/rv40dsp_init_arm.c
libavcodec/arm/videodsp_init_arm.c
libavcodec/arm/videodsp_init_armv5te.c
libavcodec/arm/vorbisdsp_init_arm.c
libavcodec/arm/vp56dsp_init_arm.c
libavcodec/bfin/dsputil_bfin.c
libavcodec/bfin/mpegvideo_bfin.c
libavcodec/bfin/vp3_bfin.c
libavcodec/ppc/dsputil_altivec.c
libavcodec/ppc/dsputil_ppc.c
libavcodec/ppc/fmtconvert_altivec.c
libavcodec/ppc/h264_altivec.c
libavcodec/ppc/h264_qpel.c
libavcodec/ppc/int_altivec.c
libavcodec/ppc/mpegaudiodec_altivec.c
libavcodec/ppc/mpegvideo_altivec.c
libavcodec/ppc/vc1dsp_altivec.c
libavcodec/ppc/videodsp_ppc.c
libavcodec/ppc/vorbisdsp_altivec.c
libavcodec/sh4/dsputil_align.c
libavcodec/sh4/dsputil_sh4.c
libavcodec/sparc/dsputil_vis.c
libavcodec/x86/cavsdsp.c
libavcodec/x86/dnxhdenc.c
libavcodec/x86/dsputil_mmx.c
libavcodec/x86/dsputilenc_mmx.c
libavcodec/x86/fmtconvert_init.c
libavcodec/x86/h264_intrapred_init.c
libavcodec/x86/h264_qpel.c
libavcodec/x86/h264dsp_init.c
libavcodec/x86/lpc.c
libavcodec/x86/mlpdsp.c
libavcodec/x86/motion_est.c
libavcodec/x86/mpegaudiodec.c
libavcodec/x86/mpegvideo.c
libavcodec/x86/mpegvideoenc.c
libavcodec/x86/pngdsp_init.c
libavcodec/x86/rv40dsp_init.c
libavcodec/x86/videodsp_init.c
libavcodec/x86/vorbisdsp_init.c

diff --cc configure
+++ b/configure
@@@ -139,10 -128,12 +139,12 @@@ Component options
    --disable-mdct           disable MDCT code
    --disable-rdft           disable RDFT code
    --disable-fft            disable FFT code
+ Hardware accelerators:
    --enable-dxva2           enable DXVA2 code
 -  --enable-vaapi           enable VAAPI code
 -  --enable-vda             enable VDA code
 -  --enable-vdpau           enable VDPAU code
 +  --enable-vaapi           enable VAAPI code [autodetect]
 +  --enable-vda             enable VDA code   [autodetect]
 +  --enable-vdpau           enable VDPAU code [autodetect]
  
  Individual component options:
    --disable-everything     disable all components listed below
@@@ -1101,14 -999,12 +1103,21 @@@ COMPONENT_LIST=
      protocols
  "
  
 +DOCUMENT_LIST="
 +    doc
 +    htmlpages
 +    manpages
 +    podpages
 +    txtpages
 +"
 +
+ HWACCEL_LIST="
+     dxva2
+     vaapi
+     vda
+     vdpau
+ "
++
  LIBRARY_LIST="
      avcodec
      avdevice
@@@ -1130,20 -1024,15 +1139,20 @@@ PROGRAM_LIST=
  
  CONFIG_LIST="
      $COMPONENT_LIST
 +    $DOCUMENT_LIST
+     $HWACCEL_LIST
      $LIBRARY_LIST
      $PROGRAM_LIST
      avisynth
      bzlib
 +    crystalhd
      dct
 -    doc
 +    dwt
-     dxva2
 +    fast_unaligned
      fft
 +    fontconfig
      frei0r
 +    ftrapv
      gnutls
      gpl
      gray
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -68,9 -69,9 +69,10 @@@ void ff_h264_idct8_add4_neon(uint8_t *d
                               int16_t *block, int stride,
                               const uint8_t nnzc[6*8]);
  
- static void ff_h264dsp_init_neon(H264DSPContext *c, const int bit_depth, const int chroma_format_idc)
+ static av_cold void ff_h264dsp_init_neon(H264DSPContext *c, const int bit_depth,
+                                          const int chroma_format_idc)
  {
 +#if HAVE_NEON
      if (bit_depth == 8) {
      c->h264_v_loop_filter_luma   = ff_h264_v_loop_filter_luma_neon;
      c->h264_h_loop_filter_luma   = ff_h264_h_loop_filter_luma_neon;
      c->h264_idct8_dc_add    = ff_h264_idct8_dc_add_neon;
      c->h264_idct8_add4      = ff_h264_idct8_add4_neon;
      }
 +#endif // HAVE_NEON
  }
  
- void ff_h264dsp_init_arm(H264DSPContext *c, const int bit_depth, const int chroma_format_idc)
+ av_cold void ff_h264dsp_init_arm(H264DSPContext *c, const int bit_depth,
+                                  const int chroma_format_idc)
  {
      int cpu_flags = av_get_cpu_flags();
  
@@@ -44,9 -45,10 +45,11 @@@ void ff_pred8x8_0lt_dc_neon(uint8_t *sr
  void ff_pred8x8_l00_dc_neon(uint8_t *src, ptrdiff_t stride);
  void ff_pred8x8_0l0_dc_neon(uint8_t *src, ptrdiff_t stride);
  
- static void ff_h264_pred_init_neon(H264PredContext *h, int codec_id, const int bit_depth, const int chroma_format_idc)
+ static av_cold void ff_h264_pred_init_neon(H264PredContext *h, int codec_id,
+                                            const int bit_depth,
+                                            const int chroma_format_idc)
  {
 +#if HAVE_NEON
      const int high_depth = bit_depth > 8;
  
      if (high_depth)
      h->pred16x16[DC_128_PRED8x8 ] = ff_pred16x16_128_dc_neon;
      if (codec_id != AV_CODEC_ID_SVQ3 && codec_id != AV_CODEC_ID_RV40 && codec_id != AV_CODEC_ID_VP8)
          h->pred16x16[PLANE_PRED8x8  ] = ff_pred16x16_plane_neon;
 +#endif // HAVE_NEON
  }
  
- void ff_h264_pred_init_arm(H264PredContext *h, int codec_id, int bit_depth, const int chroma_format_idc)
+ av_cold void ff_h264_pred_init_arm(H264PredContext *h, int codec_id,
+                                    int bit_depth, const int chroma_format_idc)
  {
      int cpu_flags = av_get_cpu_flags();
  
Simple merge
Simple merge
@@@ -19,7 -19,7 +19,8 @@@
   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
   */
  
+ #include "libavutil/attributes.h"
 +#include "libavutil/avassert.h"
  #include "libavcodec/avcodec.h"
  #include "libavcodec/dsputil.h"
  #include "libavcodec/mpegvideo.h"
Simple merge
Simple merge
Simple merge
@@@ -24,9 -25,7 +25,9 @@@
  
  void ff_prefetch_arm(uint8_t *mem, ptrdiff_t stride, int h);
  
- void ff_videodsp_init_armv5te(VideoDSPContext *ctx, int bpc)
av_cold void ff_videodsp_init_armv5te(VideoDSPContext *ctx, int bpc)
  {
 +#if HAVE_ARMV5TE_EXTERNAL
      ctx->prefetch = ff_prefetch_arm;
 +#endif
  }
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -137,17 -138,9 +138,17 @@@ static long check_dcbzl_effect(void
  }
  #endif
  
void ff_dsputil_init_ppc(DSPContext* c, AVCodecContext *avctx)
av_cold void ff_dsputil_init_ppc(DSPContext *c, AVCodecContext *avctx)
  {
      const int high_bit_depth = avctx->bits_per_raw_sample > 8;
 +    int mm_flags = av_get_cpu_flags();
 +
 +    if (avctx->dsp_mask) {
 +        if (avctx->dsp_mask & AV_CPU_FLAG_FORCE)
 +            mm_flags |= (avctx->dsp_mask & 0xffff);
 +        else
 +            mm_flags &= ~(avctx->dsp_mask & 0xffff);
 +    }
  
      // Common optimizations whether AltiVec is available or not
      if (!high_bit_depth) {
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
   * Lesser General Public License for more details.
   *
   * You should have received a copy of the GNU Lesser General Public
 - * License along with Libav; if not, write to the Free Software
 + * License along with FFmpeg; if not, write to the Free Software
   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 + *
 + * MMX optimization by Nick Kurshev <nickols_k@mail.ru>
   */
  
+ #include "libavutil/attributes.h"
  #include "libavutil/cpu.h"
  #include "libavutil/x86/asm.h"
  #include "libavcodec/dsputil.h"
@@@ -2006,16 -1862,10 +2009,16 @@@ static av_cold void dsputil_init_sse(DS
  
      c->vector_clipf = vector_clipf_sse;
  #endif /* HAVE_INLINE_ASM */
 +
 +#if HAVE_YASM
 +#if HAVE_INLINE_ASM && CONFIG_VIDEODSP
 +    c->gmc = gmc_sse;
 +#endif
 +#endif /* HAVE_YASM */
  }
  
- static void dsputil_init_sse2(DSPContext *c, AVCodecContext *avctx,
-                               int mm_flags)
+ static av_cold void dsputil_init_sse2(DSPContext *c, AVCodecContext *avctx,
+                                       int mm_flags)
  {
      const int bit_depth      = avctx->bits_per_raw_sample;
      const int high_bit_depth = bit_depth > 8;
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -207,10 -208,9 +208,10 @@@ H264_BIWEIGHT_10_SSE(16, 10
  H264_BIWEIGHT_10_SSE(8,  10)
  H264_BIWEIGHT_10_SSE(4,  10)
  
- void ff_h264dsp_init_x86(H264DSPContext *c, const int bit_depth,
-                          const int chroma_format_idc)
av_cold void ff_h264dsp_init_x86(H264DSPContext *c, const int bit_depth,
+                                  const int chroma_format_idc)
  {
 +#if HAVE_YASM
      int mm_flags = av_get_cpu_flags();
  
      if (chroma_format_idc == 1 && EXTERNAL_MMXEXT(mm_flags))
@@@ -20,7 -20,9 +20,8 @@@
   */
  
  #include "libavutil/x86/asm.h"
+ #include "libavutil/attributes.h"
  #include "libavutil/cpu.h"
 -#include "libavutil/internal.h"
  #include "libavcodec/lpc.h"
  
  #if HAVE_SSE2_INLINE
@@@ -19,6 -19,8 +19,7 @@@
   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
   */
  
 -#include "libavutil/internal.h"
+ #include "libavutil/attributes.h"
  #include "libavutil/x86/asm.h"
  #include "libavcodec/mlpdsp.h"
  #include "libavcodec/mlp.h"
@@@ -22,7 -22,8 +22,8 @@@
   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
   */
  
 -#include "libavutil/internal.h"
+ #include "libavutil/attributes.h"
 +#include "libavutil/avassert.h"
  #include "libavutil/mem.h"
  #include "libavutil/x86/asm.h"
  #include "libavcodec/dsputil.h"
@@@ -226,13 -221,10 +227,13 @@@ DECL_IMDCT_BLOCKS(sse,sse
  DECL_IMDCT_BLOCKS(sse2,sse)
  DECL_IMDCT_BLOCKS(sse3,sse)
  DECL_IMDCT_BLOCKS(ssse3,sse)
 +#endif
 +#if HAVE_AVX_EXTERNAL
  DECL_IMDCT_BLOCKS(avx,avx)
 +#endif
  #endif /* HAVE_YASM */
  
- void ff_mpadsp_init_x86(MPADSPContext *s)
av_cold void ff_mpadsp_init_x86(MPADSPContext *s)
  {
      int mm_flags = av_get_cpu_flags();
  
Simple merge
@@@ -80,7 -81,7 +81,7 @@@ extern uint16_t ff_inv_zigzag_direct16[
  #include "mpegvideoenc_template.c"
  #endif /* HAVE_SSSE3_INLINE */
  
- void ff_dct_encode_init_x86(MpegEncContext *s)
 -av_cold void ff_MPV_encode_init_x86(MpegEncContext *s)
++av_cold void ff_dct_encode_init_x86(MpegEncContext *s)
  {
      int mm_flags = av_get_cpu_flags();
      const int dct_algo = s->avctx->dct_algo;
Simple merge
Simple merge
@@@ -20,7 -19,7 +20,8 @@@
   */
  
  #include "config.h"
+ #include "libavutil/attributes.h"
 +#include "libavutil/avassert.h"
  #include "libavutil/common.h"
  #include "libavutil/cpu.h"
  #include "libavutil/mem.h"
Simple merge