Merge commit '01c5779f56cf708e6cb88b11cfdc248cae7e2ee8'
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 5 Apr 2014 17:16:39 +0000 (19:16 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 5 Apr 2014 17:16:39 +0000 (19:16 +0200)
* commit '01c5779f56cf708e6cb88b11cfdc248cae7e2ee8':
  x86: Drop some unnecessary YASM ifdefs

Conflicts:
libavfilter/x86/vf_yadif_init.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/x86/dsputilenc_mmx.c
libavcodec/x86/h264chroma_init.c
libavcodec/x86/vorbisdsp_init.c
libavfilter/x86/vf_yadif_init.c
libavresample/x86/audio_mix_init.c

@@@ -5,20 -5,20 +5,20 @@@
   *
   * MMX optimization by Nick Kurshev <nickols_k@mail.ru>
   *
 - * 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
   */
  
@@@ -451,8 -451,8 +451,8 @@@ static int vsad_intra16_mmx(MpegEncCont
  {
      int tmp;
  
 -    assert((((int) pix) & 7) == 0);
 -    assert((line_size & 7) == 0);
 +    av_assert2((((int) pix) & 7) == 0);
 +    av_assert2((line_size & 7) == 0);
  
  #define SUM(in0, in1, out0, out1)               \
      "movq (%0), %%mm2\n"                        \
@@@ -515,8 -515,8 +515,8 @@@ static int vsad_intra16_mmxext(MpegEncC
  {
      int tmp;
  
 -    assert((((int) pix) & 7) == 0);
 -    assert((line_size & 7) == 0);
 +    av_assert2((((int) pix) & 7) == 0);
 +    av_assert2((line_size & 7) == 0);
  
  #define SUM(in0, in1, out0, out1)               \
      "movq (%0), " #out0 "\n"                    \
@@@ -558,9 -558,9 +558,9 @@@ static int vsad16_mmx(MpegEncContext *v
  {
      int tmp;
  
 -    assert((((int) pix1) & 7) == 0);
 -    assert((((int) pix2) & 7) == 0);
 -    assert((line_size & 7) == 0);
 +    av_assert2((((int) pix1) & 7) == 0);
 +    av_assert2((((int) pix2) & 7) == 0);
 +    av_assert2((line_size & 7) == 0);
  
  #define SUM(in0, in1, out0, out1)       \
      "movq (%0), %%mm2\n"                \
@@@ -639,9 -639,9 +639,9 @@@ static int vsad16_mmxext(MpegEncContex
  {
      int tmp;
  
 -    assert((((int) pix1) & 7) == 0);
 -    assert((((int) pix2) & 7) == 0);
 -    assert((line_size & 7) == 0);
 +    av_assert2((((int) pix1) & 7) == 0);
 +    av_assert2((((int) pix2) & 7) == 0);
 +    av_assert2((line_size & 7) == 0);
  
  #define SUM(in0, in1, out0, out1)               \
      "movq (%0), " #out0 "\n"                    \
  }
  #undef SUM
  
 -static void diff_bytes_mmx(uint8_t *dst, uint8_t *src1, uint8_t *src2, int w)
 +static void diff_bytes_mmx(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int w)
  {
      x86_reg i = 0;
  
 +    if (w >= 16)
      __asm__ volatile (
          "1:                             \n\t"
          "movq  (%2, %0), %%mm0          \n\t"
@@@ -993,7 -992,6 +993,6 @@@ av_cold void ff_dsputilenc_init_mmx(DSP
      int cpu_flags = av_get_cpu_flags();
      const int dct_algo = avctx->dct_algo;
  
- #if HAVE_YASM
      if (EXTERNAL_MMX(cpu_flags)) {
          if (!high_bit_depth)
              c->get_pixels = ff_get_pixels_mmx;
      if (EXTERNAL_SSE2(cpu_flags))
          if (!high_bit_depth)
              c->get_pixels = ff_get_pixels_sse2;
- #endif /* HAVE_YASM */
  
  #if HAVE_INLINE_ASM
      if (INLINE_MMX(cpu_flags)) {
@@@ -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
   */
  
@@@ -69,7 -69,6 +69,6 @@@ CHROMA_MC(avg, 8, 10, avx
  
  av_cold void ff_h264chroma_init_x86(H264ChromaContext *c, int bit_depth)
  {
- #if HAVE_YASM
      int high_bit_depth = bit_depth > 8;
      int cpu_flags      = av_get_cpu_flags();
  
          c->put_h264_chroma_pixels_tab[0] = ff_put_h264_chroma_mc8_10_avx;
          c->avg_h264_chroma_pixels_tab[0] = ff_avg_h264_chroma_mc8_10_avx;
      }
- #endif
  }
@@@ -1,20 -1,20 +1,20 @@@
  /*
   * Copyright (C) 2006 Loren Merritt <lorenm@u.washington.edu>
   *
 - * 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
   */
  
@@@ -31,7 -31,6 +31,6 @@@ void ff_vorbis_inverse_coupling_sse(flo
  
  av_cold void ff_vorbisdsp_init_x86(VorbisDSPContext *dsp)
  {
- #if HAVE_YASM
      int cpu_flags = av_get_cpu_flags();
  
  #if ARCH_X86_32
@@@ -40,5 -39,4 +39,4 @@@
  #endif /* ARCH_X86_32 */
      if (EXTERNAL_SSE(cpu_flags))
          dsp->vorbis_inverse_coupling = ff_vorbis_inverse_coupling_sse;
- #endif /* HAVE_YASM */
  }
@@@ -1,25 -1,26 +1,25 @@@
  /*
   * Copyright (C) 2006 Michael Niedermayer <michaelni@gmx.at>
   *
 - * 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 "libavutil/attributes.h"
  #include "libavutil/cpu.h"
 -#include "libavutil/internal.h"
  #include "libavutil/mem.h"
  #include "libavutil/x86/asm.h"
  #include "libavutil/x86/cpu.h"
@@@ -35,65 -36,16 +35,63 @@@ void ff_yadif_filter_line_ssse3(void *d
                                  void *next, int w, int prefs,
                                  int mrefs, int parity, int mode);
  
 +void ff_yadif_filter_line_16bit_mmxext(void *dst, void *prev, void *cur,
 +                                       void *next, int w, int prefs,
 +                                       int mrefs, int parity, int mode);
 +void ff_yadif_filter_line_16bit_sse2(void *dst, void *prev, void *cur,
 +                                     void *next, int w, int prefs,
 +                                     int mrefs, int parity, int mode);
 +void ff_yadif_filter_line_16bit_ssse3(void *dst, void *prev, void *cur,
 +                                      void *next, int w, int prefs,
 +                                      int mrefs, int parity, int mode);
 +void ff_yadif_filter_line_16bit_sse4(void *dst, void *prev, void *cur,
 +                                     void *next, int w, int prefs,
 +                                     int mrefs, int parity, int mode);
 +
 +void ff_yadif_filter_line_10bit_mmxext(void *dst, void *prev, void *cur,
 +                                       void *next, int w, int prefs,
 +                                       int mrefs, int parity, int mode);
 +void ff_yadif_filter_line_10bit_sse2(void *dst, void *prev, void *cur,
 +                                     void *next, int w, int prefs,
 +                                     int mrefs, int parity, int mode);
 +void ff_yadif_filter_line_10bit_ssse3(void *dst, void *prev, void *cur,
 +                                      void *next, int w, int prefs,
 +                                      int mrefs, int parity, int mode);
 +
  av_cold void ff_yadif_init_x86(YADIFContext *yadif)
  {
- #if HAVE_YASM
      int cpu_flags = av_get_cpu_flags();
 +    int bit_depth = (!yadif->csp) ? 8
 +                                  : yadif->csp->comp[0].depth_minus1 + 1;
  
 +    if (bit_depth >= 15) {
 +#if ARCH_X86_32
 +        if (EXTERNAL_MMXEXT(cpu_flags))
 +            yadif->filter_line = ff_yadif_filter_line_16bit_mmxext;
 +#endif /* ARCH_X86_32 */
 +        if (EXTERNAL_SSE2(cpu_flags))
 +            yadif->filter_line = ff_yadif_filter_line_16bit_sse2;
 +        if (EXTERNAL_SSSE3(cpu_flags))
 +            yadif->filter_line = ff_yadif_filter_line_16bit_ssse3;
 +        if (EXTERNAL_SSE4(cpu_flags))
 +            yadif->filter_line = ff_yadif_filter_line_16bit_sse4;
 +    } else if ( bit_depth >= 9 && bit_depth <= 14) {
 +#if ARCH_X86_32
 +        if (EXTERNAL_MMXEXT(cpu_flags))
 +            yadif->filter_line = ff_yadif_filter_line_10bit_mmxext;
 +#endif /* ARCH_X86_32 */
 +        if (EXTERNAL_SSE2(cpu_flags))
 +            yadif->filter_line = ff_yadif_filter_line_10bit_sse2;
 +        if (EXTERNAL_SSSE3(cpu_flags))
 +            yadif->filter_line = ff_yadif_filter_line_10bit_ssse3;
 +    } else {
  #if ARCH_X86_32
 -    if (EXTERNAL_MMXEXT(cpu_flags))
 -        yadif->filter_line = ff_yadif_filter_line_mmxext;
 +        if (EXTERNAL_MMXEXT(cpu_flags))
 +            yadif->filter_line = ff_yadif_filter_line_mmxext;
  #endif /* ARCH_X86_32 */
 -    if (EXTERNAL_SSE2(cpu_flags))
 -        yadif->filter_line = ff_yadif_filter_line_sse2;
 -    if (EXTERNAL_SSSE3(cpu_flags))
 -        yadif->filter_line = ff_yadif_filter_line_ssse3;
 +        if (EXTERNAL_SSE2(cpu_flags))
 +            yadif->filter_line = ff_yadif_filter_line_sse2;
 +        if (EXTERNAL_SSSE3(cpu_flags))
 +            yadif->filter_line = ff_yadif_filter_line_ssse3;
 +    }
- #endif /* HAVE_YASM */
  }
@@@ -1,20 -1,20 +1,20 @@@
  /*
   * Copyright (c) 2012 Justin Ruggles <justin.ruggles@gmail.com>
   *
 - * 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
   */
  
@@@ -173,7 -173,6 +173,6 @@@ DEFINE_MIX_3_8_TO_1_2(8
  
  av_cold void ff_audio_mix_init_x86(AudioMix *am)
  {
- #if HAVE_YASM
      int cpu_flags = av_get_cpu_flags();
  
      if (EXTERNAL_SSE(cpu_flags)) {
      SET_MIX_3_8_TO_1_2(6)
      SET_MIX_3_8_TO_1_2(7)
      SET_MIX_3_8_TO_1_2(8)
- #endif /* HAVE_YASM */
  }