Merge commit '71155d7b4157fee44c0d3d0fc1b660ebfb9ccf46'
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 27 Jan 2013 12:49:57 +0000 (13:49 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 27 Jan 2013 13:24:28 +0000 (14:24 +0100)
* commit '71155d7b4157fee44c0d3d0fc1b660ebfb9ccf46':
  dsputil: x86: Convert mpeg4 qpel and dsputil avg to yasm

Conflicts:
libavcodec/x86/dsputil_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/x86/Makefile
libavcodec/x86/dsputil_avg_template.c
libavcodec/x86/dsputil_mmx.c
libavcodec/x86/vc1dsp_mmx.c

Simple merge
Simple merge
@@@ -1838,83 -1535,11 +1602,85 @@@ void ff_put_vc1_mspel_mc00_mmx(uint8_t 
  void ff_avg_vc1_mspel_mc00_mmxext(uint8_t *dst, const uint8_t *src,
                                    int stride, int rnd)
  {
-     avg_pixels8_mmxext(dst, src, stride, 8);
+     ff_avg_pixels8_mmxext(dst, src, stride, 8);
  }
+ #endif /* HAVE_YASM */
  
- #define DIRAC_PIXOP(OPNAME, EXT)\
- void ff_ ## OPNAME ## _dirac_pixels8_ ## EXT(uint8_t *dst, const uint8_t *src[5], int stride, int h)\
 +#if CONFIG_DIRAC_DECODER
- void ff_ ## OPNAME ## _dirac_pixels16_ ## EXT(uint8_t *dst, const uint8_t *src[5], int stride, int h)\
++#define DIRAC_PIXOP(OPNAME2, OPNAME, EXT)\
++void ff_ ## OPNAME2 ## _dirac_pixels8_ ## EXT(uint8_t *dst, const uint8_t *src[5], int stride, int h)\
 +{\
 +    OPNAME ## _pixels8_ ## EXT(dst, src[0], stride, h);\
 +}\
- void ff_ ## OPNAME ## _dirac_pixels32_ ## EXT(uint8_t *dst, const uint8_t *src[5], int stride, int h)\
++void ff_ ## OPNAME2 ## _dirac_pixels16_ ## EXT(uint8_t *dst, const uint8_t *src[5], int stride, int h)\
 +{\
 +    OPNAME ## _pixels16_ ## EXT(dst, src[0], stride, h);\
 +}\
- DIRAC_PIXOP(put, mmx)
- DIRAC_PIXOP(avg, mmx)
- DIRAC_PIXOP(avg, mmxext)
++void ff_ ## OPNAME2 ## _dirac_pixels32_ ## EXT(uint8_t *dst, const uint8_t *src[5], int stride, int h)\
 +{\
 +    OPNAME ## _pixels16_ ## EXT(dst   , src[0]   , stride, h);\
 +    OPNAME ## _pixels16_ ## EXT(dst+16, src[0]+16, stride, h);\
 +}
 +
++DIRAC_PIXOP(put, put, mmx)
++DIRAC_PIXOP(avg, avg, mmx)
++DIRAC_PIXOP(avg, ff_avg, mmxext)
 +
 +#if HAVE_YASM
 +void ff_put_dirac_pixels16_sse2(uint8_t *dst, const uint8_t *src[5], int stride, int h)
 +{
 +    ff_put_pixels16_sse2(dst, src[0], stride, h);
 +}
 +void ff_avg_dirac_pixels16_sse2(uint8_t *dst, const uint8_t *src[5], int stride, int h)
 +{
 +    ff_avg_pixels16_sse2(dst, src[0], stride, h);
 +}
 +void ff_put_dirac_pixels32_sse2(uint8_t *dst, const uint8_t *src[5], int stride, int h)
 +{
 +    ff_put_pixels16_sse2(dst   , src[0]   , stride, h);
 +    ff_put_pixels16_sse2(dst+16, src[0]+16, stride, h);
 +}
 +void ff_avg_dirac_pixels32_sse2(uint8_t *dst, const uint8_t *src[5], int stride, int h)
 +{
 +    ff_avg_pixels16_sse2(dst   , src[0]   , stride, h);
 +    ff_avg_pixels16_sse2(dst+16, src[0]+16, stride, h);
 +}
 +#endif
 +#endif
 +
 +/* XXX: Those functions should be suppressed ASAP when all IDCTs are
 + * converted. */
 +#if CONFIG_GPL
 +static void ff_libmpeg2mmx_idct_put(uint8_t *dest, int line_size,
 +                                    int16_t *block)
 +{
 +    ff_mmx_idct(block);
 +    ff_put_pixels_clamped_mmx(block, dest, line_size);
 +}
 +
 +static void ff_libmpeg2mmx_idct_add(uint8_t *dest, int line_size,
 +                                    int16_t *block)
 +{
 +    ff_mmx_idct(block);
 +    ff_add_pixels_clamped_mmx(block, dest, line_size);
 +}
 +
 +static void ff_libmpeg2mmx2_idct_put(uint8_t *dest, int line_size,
 +                                     int16_t *block)
 +{
 +    ff_mmxext_idct(block);
 +    ff_put_pixels_clamped_mmx(block, dest, line_size);
 +}
 +
 +static void ff_libmpeg2mmx2_idct_add(uint8_t *dest, int line_size,
 +                                     int16_t *block)
 +{
 +    ff_mmxext_idct(block);
 +    ff_add_pixels_clamped_mmx(block, dest, line_size);
 +}
 +#endif
 +
+ #if HAVE_INLINE_ASM
  static void vector_clipf_sse(float *dst, const float *src,
                               float min, float max, int len)
  {
@@@ -2105,24 -1743,32 +1871,24 @@@ static void dsputil_init_mmxext(DSPCont
  
      if (!(avctx->flags & CODEC_FLAG_BITEXACT)) {
          if (!high_bit_depth) {
-             c->put_no_rnd_pixels_tab[0][1] = put_no_rnd_pixels16_x2_mmxext;
-             c->put_no_rnd_pixels_tab[0][2] = put_no_rnd_pixels16_y2_mmxext;
-             c->put_no_rnd_pixels_tab[1][1] = put_no_rnd_pixels8_x2_mmxext;
-             c->put_no_rnd_pixels_tab[1][2] = put_no_rnd_pixels8_y2_mmxext;
+             c->put_no_rnd_pixels_tab[0][1] = ff_put_no_rnd_pixels16_x2_mmxext;
+             c->put_no_rnd_pixels_tab[0][2] = ff_put_no_rnd_pixels16_y2_mmxext;
+             c->put_no_rnd_pixels_tab[1][1] = ff_put_no_rnd_pixels8_x2_mmxext;
+             c->put_no_rnd_pixels_tab[1][2] = ff_put_no_rnd_pixels8_y2_mmxext;
  
-             c->avg_pixels_tab[0][3] = avg_pixels16_xy2_mmxext;
-             c->avg_pixels_tab[1][3] = avg_pixels8_xy2_mmxext;
+             c->avg_pixels_tab[0][3] = ff_avg_pixels16_xy2_mmxext;
+             c->avg_pixels_tab[1][3] = ff_avg_pixels8_xy2_mmxext;
          }
      }
+ #endif /* HAVE_YASM */
  
 -#if HAVE_INLINE_ASM
 -    if (!high_bit_depth && avctx->idct_algo == FF_IDCT_XVIDMMX) {
 -        c->idct_put = ff_idct_xvid_mmxext_put;
 -        c->idct_add = ff_idct_xvid_mmxext_add;
 -        c->idct     = ff_idct_xvid_mmxext;
 -    }
 -#endif /* HAVE_INLINE_ASM */
 -
+ #if HAVE_MMXEXT_EXTERNAL
      if (CONFIG_VP3_DECODER && (avctx->codec_id == AV_CODEC_ID_VP3 ||
                                 avctx->codec_id == AV_CODEC_ID_THEORA)) {
-         c->put_no_rnd_pixels_tab[1][1] = put_no_rnd_pixels8_x2_exact_mmxext;
-         c->put_no_rnd_pixels_tab[1][2] = put_no_rnd_pixels8_y2_exact_mmxext;
+         c->put_no_rnd_pixels_tab[1][1] = ff_put_no_rnd_pixels8_x2_exact_mmxext;
+         c->put_no_rnd_pixels_tab[1][2] = ff_put_no_rnd_pixels8_y2_exact_mmxext;
      }
- #endif /* HAVE_INLINE_ASM */
  
- #if HAVE_MMXEXT_EXTERNAL
      if (!high_bit_depth && CONFIG_H264CHROMA) {
          c->avg_h264_chroma_pixels_tab[0] = ff_avg_h264_chroma_mc8_rnd_mmxext;
          c->avg_h264_chroma_pixels_tab[1] = ff_avg_h264_chroma_mc4_mmxext;
Simple merge