Merge commit 'd2f4846591727fedcc2b452b688da8da09ee8305' into release/0.10
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 4 Nov 2013 18:34:04 +0000 (19:34 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 4 Nov 2013 18:34:04 +0000 (19:34 +0100)
* commit 'd2f4846591727fedcc2b452b688da8da09ee8305':
  Prepare for 0.8.7 Release
  x86: fft: Remove 3DNow! optimizations, they break FATE
  x86: ac3dsp: Drop mmx variant of ac3_max_msb_abs_int16

Conflicts:
RELEASE
libavcodec/x86/fft_3dn.c
libavcodec/x86/fft_3dn2.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/x86/Makefile
libavcodec/x86/ac3dsp.asm
libavcodec/x86/ac3dsp_mmx.c
libavcodec/x86/fft.c

diff --combined libavcodec/x86/Makefile
@@@ -3,14 -3,10 +3,12 @@@ OBJS-$(CONFIG_TRUEHD_DECODER)          
  
  YASM-OBJS-$(CONFIG_DCT)                += x86/dct32_sse.o
  
- YASM-OBJS-FFT-$(HAVE_AMD3DNOW)         += x86/fft_3dn.o
- YASM-OBJS-FFT-$(HAVE_AMD3DNOWEXT)      += x86/fft_3dn2.o
  YASM-OBJS-FFT-$(HAVE_SSE)              += x86/fft_sse.o
  YASM-OBJS-$(CONFIG_FFT)                += x86/fft_mmx.o                 \
                                            $(YASM-OBJS-FFT-yes)
  
 +YASM-OBJS-$(CONFIG_DWT)                += x86/dwt_yasm.o
 +
  YASM-OBJS-$(CONFIG_H264CHROMA)         += x86/h264_chromamc.o           \
                                            x86/h264_chromamc_10bit.o
  
@@@ -34,27 -30,19 +32,27 @@@ YASM-OBJS-$(CONFIG_RV40_DECODER)       
  
  YASM-OBJS-$(CONFIG_VC1_DECODER)        += x86/vc1dsp_yasm.o
  
 +YASM-OBJS-$(CONFIG_DIRAC_DECODER)      += x86/diracdsp_mmx.o x86/diracdsp_yasm.o
 +
  MMX-OBJS-$(CONFIG_AC3DSP)              += x86/ac3dsp_mmx.o
  YASM-OBJS-$(CONFIG_AC3DSP)             += x86/ac3dsp.o
  MMX-OBJS-$(CONFIG_CAVS_DECODER)        += x86/cavsdsp_mmx.o
  MMX-OBJS-$(CONFIG_DNXHD_ENCODER)       += x86/dnxhd_mmx.o
  MMX-OBJS-$(CONFIG_MPEGAUDIODSP)        += x86/mpegaudiodec_mmx.o
  YASM-OBJS-$(CONFIG_MPEGAUDIODSP)       += x86/imdct36_sse.o
 +MMX-OBJS-$(CONFIG_PNG_DECODER)         += x86/png_mmx.o
  MMX-OBJS-$(CONFIG_ENCODERS)            += x86/dsputilenc_mmx.o
  YASM-OBJS-$(CONFIG_ENCODERS)           += x86/dsputilenc_yasm.o
  MMX-OBJS-$(CONFIG_GPL)                 += x86/idct_mmx.o
  MMX-OBJS-$(CONFIG_LPC)                 += x86/lpc_mmx.o
 +YASM-OBJS-$(CONFIG_PRORES_LGPL_DECODER)     += x86/proresdsp.o
 +MMX-OBJS-$(CONFIG_PRORES_LGPL_DECODER)      += x86/proresdsp-init.o
  YASM-OBJS-$(CONFIG_PRORES_DECODER)     += x86/proresdsp.o
  MMX-OBJS-$(CONFIG_PRORES_DECODER)      += x86/proresdsp-init.o
 -MMX-OBJS-$(CONFIG_DWT)                 += x86/snowdsp_mmx.o
 +MMX-OBJS-$(CONFIG_DWT)                 += x86/snowdsp_mmx.o \
 +                                          x86/dwt.o
 +YASM-OBJS-$(CONFIG_V210_DECODER)       += x86/v210.o
 +MMX-OBJS-$(CONFIG_V210_DECODER)        += x86/v210-init.o
  MMX-OBJS-$(CONFIG_VC1_DECODER)         += x86/vc1dsp_mmx.o
  YASM-OBJS-$(CONFIG_VP3_DECODER)        += x86/vp3dsp.o
  YASM-OBJS-$(CONFIG_VP5_DECODER)        += x86/vp3dsp.o
@@@ -2,25 -2,25 +2,25 @@@
  ;* x86-optimized AC-3 DSP utils
  ;* Copyright (c) 2011 Justin Ruggles
  ;*
 -;* This file is part of Libav.
 +;* This file is part of FFmpeg.
  ;*
 -;* Libav is free software; you can redistribute it and/or
 +;* FFmpeg is free software; you can redistribute it and/or
  ;* modify it under the terms of the GNU Lesser General Public
  ;* License as published by the Free Software Foundation; either
  ;* version 2.1 of the License, or (at your option) any later version.
  ;*
 -;* Libav is distributed in the hope that it will be useful,
 +;* FFmpeg is distributed in the hope that it will be useful,
  ;* but WITHOUT ANY WARRANTY; without even the implied warranty of
  ;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  ;* 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
  ;******************************************************************************
  
 -%include "x86inc.asm"
 -%include "x86util.asm"
 +%include "libavutil/x86/x86inc.asm"
 +%include "libavutil/x86/x86util.asm"
  
  SECTION_RODATA
  
@@@ -86,7 -86,6 +86,6 @@@ AC3_EXPONENT_MIN sse
  ; This function uses 2 different methods to calculate a valid result.
  ; 1) logical 'or' of abs of each element
  ;        This is used for ssse3 because of the pabsw instruction.
- ;        It is also used for mmx because of the lack of min/max instructions.
  ; 2) calculate min/max for the array, then or(abs(min),abs(max))
  ;        This is used for mmxext and sse2 because they have pminsw/pmaxsw.
  ;-----------------------------------------------------------------------------
@@@ -104,15 -103,9 +103,9 @@@ cglobal ac3_max_msb_abs_int16_%1, 2,2,5
      pmaxsw      m3, m0
      pmaxsw      m3, m1
  %else ; or_abs
- %ifidn %1, mmx
-     mova        m0, [srcq]
-     mova        m1, [srcq+mmsize]
-     ABS2        m0, m1, m3, m4
- %else ; ssse3
      ; using memory args is faster for ssse3
      pabsw       m0, [srcq]
      pabsw       m1, [srcq+mmsize]
- %endif
      por         m2, m0
      por         m2, m1
  %endif
  %endmacro
  
  INIT_MMX
- %define ABS2 ABS2_MMX
  %define PSHUFLW pshufw
- AC3_MAX_MSB_ABS_INT16 mmx, or_abs
  %define ABS2 ABS2_MMX2
  AC3_MAX_MSB_ABS_INT16 mmxext, min_max
  INIT_XMM
@@@ -2,20 -2,20 +2,20 @@@
   * x86-optimized AC-3 DSP utils
   * Copyright (c) 2011 Justin Ruggles
   *
 - * This file is part of Libav.
 + * This file is part of FFmpeg.
   *
 - * Libav is free software; you can redistribute it and/or
 + * FFmpeg is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
   *
 - * Libav is distributed in the hope that it will be useful,
 + * FFmpeg is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   * 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
   */
  
@@@ -27,7 -27,6 +27,6 @@@ extern void ff_ac3_exponent_min_mmx   (
  extern void ff_ac3_exponent_min_mmxext(uint8_t *exp, int num_reuse_blocks, int nb_coefs);
  extern void ff_ac3_exponent_min_sse2  (uint8_t *exp, int num_reuse_blocks, int nb_coefs);
  
- extern int ff_ac3_max_msb_abs_int16_mmx   (const int16_t *src, int len);
  extern int ff_ac3_max_msb_abs_int16_mmxext(const int16_t *src, int len);
  extern int ff_ac3_max_msb_abs_int16_sse2  (const int16_t *src, int len);
  extern int ff_ac3_max_msb_abs_int16_ssse3 (const int16_t *src, int len);
@@@ -55,7 -54,6 +54,6 @@@ av_cold void ff_ac3dsp_init_x86(AC3DSPC
  
      if (mm_flags & AV_CPU_FLAG_MMX) {
          c->ac3_exponent_min = ff_ac3_exponent_min_mmx;
-         c->ac3_max_msb_abs_int16 = ff_ac3_max_msb_abs_int16_mmx;
          c->ac3_lshift_int16 = ff_ac3_lshift_int16_mmx;
          c->ac3_rshift_int32 = ff_ac3_rshift_int32_mmx;
      }
diff --combined libavcodec/x86/fft.c
@@@ -1,18 -1,18 +1,18 @@@
  /*
 - * This file is part of Libav.
 + * This file is part of FFmpeg.
   *
 - * Libav is free software; you can redistribute it and/or
 + * FFmpeg is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
   *
 - * Libav is distributed in the hope that it will be useful,
 + * FFmpeg is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   * 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
   */
  
@@@ -39,16 -39,6 +39,6 @@@ av_cold void ff_fft_init_mmx(FFTContex
          s->fft_permute = ff_fft_permute_sse;
          s->fft_calc    = ff_fft_calc_sse;
          s->fft_permutation = FF_FFT_PERM_SWAP_LSBS;
-     } else if (has_vectors & AV_CPU_FLAG_3DNOWEXT && HAVE_AMD3DNOWEXT) {
-         /* 3DNowEx for K7 */
-         s->imdct_calc = ff_imdct_calc_3dn2;
-         s->imdct_half = ff_imdct_half_3dn2;
-         s->fft_calc   = ff_fft_calc_3dn2;
-     } else if (has_vectors & AV_CPU_FLAG_3DNOW && HAVE_AMD3DNOW) {
-         /* 3DNow! for K6-2/3 */
-         s->imdct_calc = ff_imdct_calc_3dn;
-         s->imdct_half = ff_imdct_half_3dn;
-         s->fft_calc   = ff_fft_calc_3dn;
      }
  #endif
  }