Merge commit 'bf7c3c6b157f7938578f964b62cffd5e504940be'
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 3 May 2013 08:49:46 +0000 (10:49 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 3 May 2013 08:50:27 +0000 (10:50 +0200)
* commit 'bf7c3c6b157f7938578f964b62cffd5e504940be':
  x86: dsputil: Move cavs and vc1-specific functions where they belong

Conflicts:
libavcodec/x86/dsputil_mmx.c

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

Simple merge
@@@ -1045,136 -1010,6 +1045,107 @@@ static av_always_inline void gmc(uint8_
      }
  }
  
 +#if CONFIG_VIDEODSP
 +#if HAVE_YASM
 +#if ARCH_X86_32
 +static void gmc_mmx(uint8_t *dst, uint8_t *src,
 +                    int stride, int h, int ox, int oy,
 +                    int dxx, int dxy, int dyx, int dyy,
 +                    int shift, int r, int width, int height)
 +{
 +    gmc(dst, src, stride, h, ox, oy, dxx, dxy, dyx, dyy, shift, r,
 +        width, height, &ff_emulated_edge_mc_8);
 +}
 +#endif
 +static void gmc_sse(uint8_t *dst, uint8_t *src,
 +                    int stride, int h, int ox, int oy,
 +                    int dxx, int dxy, int dyx, int dyy,
 +                    int shift, int r, int width, int height)
 +{
 +    gmc(dst, src, stride, h, ox, oy, dxx, dxy, dyx, dyy, shift, r,
 +        width, height, &ff_emulated_edge_mc_8);
 +}
 +#else
 +static void gmc_mmx(uint8_t *dst, uint8_t *src,
 +                    int stride, int h, int ox, int oy,
 +                    int dxx, int dxy, int dyx, int dyy,
 +                    int shift, int r, int width, int height)
 +{
 +    gmc(dst, src, stride, h, ox, oy, dxx, dxy, dyx, dyy, shift, r,
 +        width, height, &ff_emulated_edge_mc_8);
 +}
 +#endif
 +#endif
 +
- /* CAVS-specific */
- void ff_put_cavs_qpel8_mc00_mmx(uint8_t *dst, uint8_t *src, ptrdiff_t stride)
- {
-     ff_put_pixels8_mmx(dst, src, stride, 8);
- }
- void ff_avg_cavs_qpel8_mc00_mmx(uint8_t *dst, uint8_t *src, ptrdiff_t stride)
- {
-     ff_avg_pixels8_mmx(dst, src, stride, 8);
- }
- void ff_put_cavs_qpel16_mc00_mmx(uint8_t *dst, uint8_t *src, ptrdiff_t stride)
- {
-     ff_put_pixels16_mmx(dst, src, stride, 16);
- }
- void ff_avg_cavs_qpel16_mc00_mmx(uint8_t *dst, uint8_t *src, ptrdiff_t stride)
- {
-     ff_avg_pixels16_mmx(dst, src, stride, 16);
- }
- /* VC-1-specific */
- void ff_put_vc1_mspel_mc00_mmx(uint8_t *dst, const uint8_t *src,
-                                ptrdiff_t stride, int rnd)
- {
-     ff_put_pixels8_mmx(dst, src, stride, 8);
- }
 +#if CONFIG_DIRAC_DECODER
 +#define DIRAC_PIXOP(OPNAME2, OPNAME, EXT)\
 +void ff_ ## OPNAME2 ## _dirac_pixels8_ ## EXT(uint8_t *dst, const uint8_t *src[5], int stride, int h)\
 +{\
 +    if (h&3)\
 +        ff_ ## OPNAME2 ## _dirac_pixels8_c(dst, src, stride, h);\
 +    else\
 +        OPNAME ## _pixels8_ ## EXT(dst, src[0], stride, h);\
 +}\
 +void ff_ ## OPNAME2 ## _dirac_pixels16_ ## EXT(uint8_t *dst, const uint8_t *src[5], int stride, int h)\
 +{\
 +    if (h&3)\
 +        ff_ ## OPNAME2 ## _dirac_pixels16_c(dst, src, stride, h);\
 +    else\
 +        OPNAME ## _pixels16_ ## EXT(dst, src[0], stride, h);\
 +}\
 +void ff_ ## OPNAME2 ## _dirac_pixels32_ ## EXT(uint8_t *dst, const uint8_t *src[5], int stride, int h)\
 +{\
 +    if (h&3) {\
 +        ff_ ## OPNAME2 ## _dirac_pixels32_c(dst, src, stride, h);\
 +    } else {\
 +        OPNAME ## _pixels16_ ## EXT(dst   , src[0]   , stride, h);\
 +        OPNAME ## _pixels16_ ## EXT(dst+16, src[0]+16, stride, h);\
 +    }\
 +}
 +
 +#if HAVE_MMX_INLINE
 +DIRAC_PIXOP(put, ff_put, mmx)
 +DIRAC_PIXOP(avg, ff_avg, mmx)
 +#endif
 +
 +#if HAVE_YASM
 +DIRAC_PIXOP(avg, ff_avg, mmxext)
 +
 +void ff_put_dirac_pixels16_sse2(uint8_t *dst, const uint8_t *src[5], int stride, int h)
 +{
 +    if (h&3)
 +        ff_put_dirac_pixels16_c(dst, src, stride, h);
 +    else
 +    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)
 +{
 +    if (h&3)
 +        ff_avg_dirac_pixels16_c(dst, src, stride, h);
 +    else
 +    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)
 +{
 +    if (h&3) {
 +        ff_put_dirac_pixels32_c(dst, src, stride, h);
 +    } else {
 +    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)
 +{
 +    if (h&3) {
 +        ff_avg_dirac_pixels32_c(dst, src, stride, h);
 +    } else {
 +    ff_avg_pixels16_sse2(dst   , src[0]   , stride, h);
 +    ff_avg_pixels16_sse2(dst+16, src[0]+16, stride, h);
 +    }
 +}
 +#endif
 +#endif
 +
  static void vector_clipf_sse(float *dst, const float *src,
                               float min, float max, int len)
  {
Simple merge
Simple merge