@ -33,17 +33,17 @@ void ff_put_pixels4_mmx(uint8_t *block, const uint8_t *pixels,
ptrdiff_t line_size , int h ) ;
void ff_avg_pixels4_mmxext ( uint8_t * block , const uint8_t * pixels ,
ptrdiff_t line_size , int h ) ;
void ff_put_pixels4_l2_mmxext ( uint8_t * dst , uint8_t * src1 , uint8_t * src2 ,
void ff_put_pixels4_l2_mmxext ( uint8_t * dst , const uint8_t * src1 , const uint8_t * src2 ,
int dstStride , int src1Stride , int h ) ;
void ff_avg_pixels4_l2_mmxext ( uint8_t * dst , uint8_t * src1 , uint8_t * src2 ,
void ff_avg_pixels4_l2_mmxext ( uint8_t * dst , const uint8_t * src1 , const uint8_t * src2 ,
int dstStride , int src1Stride , int h ) ;
void ff_put_pixels8_l2_mmxext ( uint8_t * dst , uint8_t * src1 , uint8_t * src2 ,
void ff_put_pixels8_l2_mmxext ( uint8_t * dst , const uint8_t * src1 , const uint8_t * src2 ,
int dstStride , int src1Stride , int h ) ;
void ff_avg_pixels8_l2_mmxext ( uint8_t * dst , uint8_t * src1 , uint8_t * src2 ,
void ff_avg_pixels8_l2_mmxext ( uint8_t * dst , const uint8_t * src1 , const uint8_t * src2 ,
int dstStride , int src1Stride , int h ) ;
void ff_put_pixels16_l2_mmxext ( uint8_t * dst , uint8_t * src1 , uint8_t * src2 ,
void ff_put_pixels16_l2_mmxext ( uint8_t * dst , const uint8_t * src1 , const uint8_t * src2 ,
int dstStride , int src1Stride , int h ) ;
void ff_avg_pixels16_l2_mmxext ( uint8_t * dst , uint8_t * src1 , uint8_t * src2 ,
void ff_avg_pixels16_l2_mmxext ( uint8_t * dst , const uint8_t * src1 , const uint8_t * src2 ,
int dstStride , int src1Stride , int h ) ;
# define ff_put_pixels8_l2_sse2 ff_put_pixels8_l2_mmxext
# define ff_avg_pixels8_l2_sse2 ff_avg_pixels8_l2_mmxext
@ -54,29 +54,29 @@ void ff_avg_pixels16_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2,
# define ff_put_pixels4_mmxext ff_put_pixels4_mmx
# define DEF_QPEL(OPNAME)\
void ff_ # # OPNAME # # _h264_qpel4_h_lowpass_mmxext ( uint8_t * dst , uint8_t * src , int dstStride , int srcStride ) ; \
void ff_ # # OPNAME # # _h264_qpel8_h_lowpass_mmxext ( uint8_t * dst , uint8_t * src , int dstStride , int srcStride ) ; \
void ff_ # # OPNAME # # _h264_qpel8_h_lowpass_ssse3 ( uint8_t * dst , uint8_t * src , int dstStride , int srcStride ) ; \
void ff_ # # OPNAME # # _h264_qpel4_h_lowpass_l2_mmxext ( uint8_t * dst , uint8_t * src , uint8_t * src2 , int dstStride , int src2Stride ) ; \
void ff_ # # OPNAME # # _h264_qpel8_h_lowpass_l2_mmxext ( uint8_t * dst , uint8_t * src , uint8_t * src2 , int dstStride , int src2Stride ) ; \
void ff_ # # OPNAME # # _h264_qpel8_h_lowpass_l2_ssse3 ( uint8_t * dst , uint8_t * src , uint8_t * src2 , int dstStride , int src2Stride ) ; \
void ff_ # # OPNAME # # _h264_qpel4_v_lowpass_mmxext ( uint8_t * dst , uint8_t * src , int dstStride , int srcStride ) ; \
void ff_ # # OPNAME # # _h264_qpel8or16_v_lowpass_op_mmxext ( uint8_t * dst , uint8_t * src , int dstStride , int srcStride , int h ) ; \
void ff_ # # OPNAME # # _h264_qpel8or16_v_lowpass_sse2 ( uint8_t * dst , uint8_t * src , int dstStride , int srcStride , int h ) ; \
void ff_ # # OPNAME # # _h264_qpel4_hv_lowpass_v_mmxext ( uint8_t * src , int16_t * tmp , int srcStride ) ; \
void ff_ # # OPNAME # # _h264_qpel4_h_lowpass_mmxext ( uint8_t * dst , const uint8_t * src , int dstStride , int srcStride ) ; \
void ff_ # # OPNAME # # _h264_qpel8_h_lowpass_mmxext ( uint8_t * dst , const uint8_t * src , int dstStride , int srcStride ) ; \
void ff_ # # OPNAME # # _h264_qpel8_h_lowpass_ssse3 ( uint8_t * dst , const uint8_t * src , int dstStride , int srcStride ) ; \
void ff_ # # OPNAME # # _h264_qpel4_h_lowpass_l2_mmxext ( uint8_t * dst , const uint8_t * src , const uint8_t * src2 , int dstStride , int src2Stride ) ; \
void ff_ # # OPNAME # # _h264_qpel8_h_lowpass_l2_mmxext ( uint8_t * dst , const uint8_t * src , const uint8_t * src2 , int dstStride , int src2Stride ) ; \
void ff_ # # OPNAME # # _h264_qpel8_h_lowpass_l2_ssse3 ( uint8_t * dst , const uint8_t * src , const uint8_t * src2 , int dstStride , int src2Stride ) ; \
void ff_ # # OPNAME # # _h264_qpel4_v_lowpass_mmxext ( uint8_t * dst , const uint8_t * src , int dstStride , int srcStride ) ; \
void ff_ # # OPNAME # # _h264_qpel8or16_v_lowpass_op_mmxext ( uint8_t * dst , const uint8_t * src , int dstStride , int srcStride , int h ) ; \
void ff_ # # OPNAME # # _h264_qpel8or16_v_lowpass_sse2 ( uint8_t * dst , const uint8_t * src , int dstStride , int srcStride , int h ) ; \
void ff_ # # OPNAME # # _h264_qpel4_hv_lowpass_v_mmxext ( const uint8_t * src , int16_t * tmp , int srcStride ) ; \
void ff_ # # OPNAME # # _h264_qpel4_hv_lowpass_h_mmxext ( int16_t * tmp , uint8_t * dst , int dstStride ) ; \
void ff_ # # OPNAME # # _h264_qpel8or16_hv1_lowpass_op_mmxext ( uint8_t * src , int16_t * tmp , int srcStride , int size ) ; \
void ff_ # # OPNAME # # _h264_qpel8or16_hv1_lowpass_op_sse2 ( uint8_t * src , int16_t * tmp , int srcStride , int size ) ; \
void ff_ # # OPNAME # # _h264_qpel8or16_hv1_lowpass_op_mmxext ( const uint8_t * src , int16_t * tmp , int srcStride , int size ) ; \
void ff_ # # OPNAME # # _h264_qpel8or16_hv1_lowpass_op_sse2 ( const uint8_t * src , int16_t * tmp , int srcStride , int size ) ; \
void ff_ # # OPNAME # # _h264_qpel8or16_hv2_lowpass_op_mmxext ( uint8_t * dst , int16_t * tmp , int dstStride , int unused , int h ) ; \
void ff_ # # OPNAME # # _h264_qpel8or16_hv2_lowpass_ssse3 ( uint8_t * dst , int16_t * tmp , int dstStride , int tmpStride , int size ) ; \
void ff_ # # OPNAME # # _pixels4_l2_shift5_mmxext ( uint8_t * dst , int16_t * src16 , uint8_t * src8 , int dstStride , int src8Stride , int h ) ; \
void ff_ # # OPNAME # # _pixels8_l2_shift5_mmxext ( uint8_t * dst , int16_t * src16 , uint8_t * src8 , int dstStride , int src8Stride , int h ) ;
void ff_ # # OPNAME # # _pixels4_l2_shift5_mmxext ( uint8_t * dst , const int16_t * src16 , const uint8_t * src8 , int dstStride , int src8Stride , int h ) ; \
void ff_ # # OPNAME # # _pixels8_l2_shift5_mmxext ( uint8_t * dst , const int16_t * src16 , const uint8_t * src8 , int dstStride , int src8Stride , int h ) ;
DEF_QPEL ( avg )
DEF_QPEL ( put )
# define QPEL_H264(OPNAME, OP, MMX)\
static av_always_inline void ff_ # # OPNAME # # h264_qpel4_hv_lowpass_ # # MMX ( uint8_t * dst , int16_t * tmp , uint8_t * src , int dstStride , int tmpStride , int srcStride ) { \
static av_always_inline void ff_ # # OPNAME # # h264_qpel4_hv_lowpass_ # # MMX ( uint8_t * dst , int16_t * tmp , const uint8_t * src , int dstStride , int tmpStride , int srcStride ) { \
int w = 3 ; \
src - = 2 * srcStride + 2 ; \
while ( w - - ) { \
@ -88,14 +88,14 @@ static av_always_inline void ff_ ## OPNAME ## h264_qpel4_hv_lowpass_ ## MMX(uint
ff_ # # OPNAME # # h264_qpel4_hv_lowpass_h_mmxext ( tmp , dst , dstStride ) ; \
} \
\
static av_always_inline void ff_ # # OPNAME # # h264_qpel8or16_v_lowpass_ # # MMX ( uint8_t * dst , uint8_t * src , int dstStride , int srcStride , int h ) { \
static av_always_inline void ff_ # # OPNAME # # h264_qpel8or16_v_lowpass_ # # MMX ( uint8_t * dst , const uint8_t * src , int dstStride , int srcStride , int h ) { \
src - = 2 * srcStride ; \
ff_ # # OPNAME # # h264_qpel8or16_v_lowpass_op_mmxext ( dst , src , dstStride , srcStride , h ) ; \
src + = 4 ; \
dst + = 4 ; \
ff_ # # OPNAME # # h264_qpel8or16_v_lowpass_op_mmxext ( dst , src , dstStride , srcStride , h ) ; \
} \
static av_always_inline void ff_ # # OPNAME # # h264_qpel8or16_hv1_lowpass_ # # MMX ( int16_t * tmp , uint8_t * src , int tmpStride , int srcStride , int size ) { \
static av_always_inline void ff_ # # OPNAME # # h264_qpel8or16_hv1_lowpass_ # # MMX ( int16_t * tmp , const uint8_t * src , int tmpStride , int srcStride , int size ) { \
int w = ( size + 8 ) > > 2 ; \
src - = 2 * srcStride + 2 ; \
while ( w - - ) { \
@ -113,15 +113,15 @@ static av_always_inline void ff_ ## OPNAME ## h264_qpel8or16_hv2_lowpass_ ## MMX
} while ( w - - ) ; \
} \
\
static av_always_inline void ff_ # # OPNAME # # h264_qpel8_v_lowpass_ # # MMX ( uint8_t * dst , uint8_t * src , int dstStride , int srcStride ) { \
static av_always_inline void ff_ # # OPNAME # # h264_qpel8_v_lowpass_ # # MMX ( uint8_t * dst , const uint8_t * src , int dstStride , int srcStride ) { \
ff_ # # OPNAME # # h264_qpel8or16_v_lowpass_ # # MMX ( dst , src , dstStride , srcStride , 8 ) ; \
} \
static av_always_inline void ff_ # # OPNAME # # h264_qpel16_v_lowpass_ # # MMX ( uint8_t * dst , uint8_t * src , int dstStride , int srcStride ) { \
static av_always_inline void ff_ # # OPNAME # # h264_qpel16_v_lowpass_ # # MMX ( uint8_t * dst , const uint8_t * src , int dstStride , int srcStride ) { \
ff_ # # OPNAME # # h264_qpel8or16_v_lowpass_ # # MMX ( dst , src , dstStride , srcStride , 16 ) ; \
ff_ # # OPNAME # # h264_qpel8or16_v_lowpass_ # # MMX ( dst + 8 , src + 8 , dstStride , srcStride , 16 ) ; \
} \
\
static av_always_inline void ff_ # # OPNAME # # h264_qpel16_h_lowpass_ # # MMX ( uint8_t * dst , uint8_t * src , int dstStride , int srcStride ) { \
static av_always_inline void ff_ # # OPNAME # # h264_qpel16_h_lowpass_ # # MMX ( uint8_t * dst , const uint8_t * src , int dstStride , int srcStride ) { \
ff_ # # OPNAME # # h264_qpel8_h_lowpass_ # # MMX ( dst , src , dstStride , srcStride ) ; \
ff_ # # OPNAME # # h264_qpel8_h_lowpass_ # # MMX ( dst + 8 , src + 8 , dstStride , srcStride ) ; \
src + = 8 * srcStride ; \
@ -130,7 +130,7 @@ static av_always_inline void ff_ ## OPNAME ## h264_qpel16_h_lowpass_ ## MMX(uint
ff_ # # OPNAME # # h264_qpel8_h_lowpass_ # # MMX ( dst + 8 , src + 8 , dstStride , srcStride ) ; \
} \
\
static av_always_inline void ff_ # # OPNAME # # h264_qpel16_h_lowpass_l2_ # # MMX ( uint8_t * dst , uint8_t * src , uint8_t * src2 , int dstStride , int src2Stride ) { \
static av_always_inline void ff_ # # OPNAME # # h264_qpel16_h_lowpass_l2_ # # MMX ( uint8_t * dst , const uint8_t * src , const uint8_t * src2 , int dstStride , int src2Stride ) { \
ff_ # # OPNAME # # h264_qpel8_h_lowpass_l2_ # # MMX ( dst , src , src2 , dstStride , src2Stride ) ; \
ff_ # # OPNAME # # h264_qpel8_h_lowpass_l2_ # # MMX ( dst + 8 , src + 8 , src2 + 8 , dstStride , src2Stride ) ; \
src + = 8 * dstStride ; \
@ -140,19 +140,19 @@ static av_always_inline void ff_ ## OPNAME ## h264_qpel16_h_lowpass_l2_ ## MMX(u
ff_ # # OPNAME # # h264_qpel8_h_lowpass_l2_ # # MMX ( dst + 8 , src + 8 , src2 + 8 , dstStride , src2Stride ) ; \
} \
\
static av_always_inline void ff_ # # OPNAME # # h264_qpel8or16_hv_lowpass_ # # MMX ( uint8_t * dst , int16_t * tmp , uint8_t * src , int dstStride , int tmpStride , int srcStride , int size ) { \
static av_always_inline void ff_ # # OPNAME # # h264_qpel8or16_hv_lowpass_ # # MMX ( uint8_t * dst , int16_t * tmp , const uint8_t * src , int dstStride , int tmpStride , int srcStride , int size ) { \
ff_put_h264_qpel8or16_hv1_lowpass_ # # MMX ( tmp , src , tmpStride , srcStride , size ) ; \
ff_ # # OPNAME # # h264_qpel8or16_hv2_lowpass_ # # MMX ( dst , tmp , dstStride , tmpStride , size ) ; \
} \
static av_always_inline void ff_ # # OPNAME # # h264_qpel8_hv_lowpass_ # # MMX ( uint8_t * dst , int16_t * tmp , uint8_t * src , int dstStride , int tmpStride , int srcStride ) { \
static av_always_inline void ff_ # # OPNAME # # h264_qpel8_hv_lowpass_ # # MMX ( uint8_t * dst , int16_t * tmp , const uint8_t * src , int dstStride , int tmpStride , int srcStride ) { \
ff_ # # OPNAME # # h264_qpel8or16_hv_lowpass_ # # MMX ( dst , tmp , src , dstStride , tmpStride , srcStride , 8 ) ; \
} \
\
static av_always_inline void ff_ # # OPNAME # # h264_qpel16_hv_lowpass_ # # MMX ( uint8_t * dst , int16_t * tmp , uint8_t * src , int dstStride , int tmpStride , int srcStride ) { \
static av_always_inline void ff_ # # OPNAME # # h264_qpel16_hv_lowpass_ # # MMX ( uint8_t * dst , int16_t * tmp , const uint8_t * src , int dstStride , int tmpStride , int srcStride ) { \
ff_ # # OPNAME # # h264_qpel8or16_hv_lowpass_ # # MMX ( dst , tmp , src , dstStride , tmpStride , srcStride , 16 ) ; \
} \
\
static av_always_inline void ff_ # # OPNAME # # pixels16_l2_shift5_ # # MMX ( uint8_t * dst , int16_t * src16 , uint8_t * src8 , int dstStride , int src8Stride , int h ) \
static av_always_inline void ff_ # # OPNAME # # pixels16_l2_shift5_ # # MMX ( uint8_t * dst , const int16_t * src16 , const uint8_t * src8 , int dstStride , int src8Stride , int h ) \
{ \
ff_ # # OPNAME # # pixels8_l2_shift5_ # # MMX ( dst , src16 , src8 , dstStride , src8Stride , h ) ; \
ff_ # # OPNAME # # pixels8_l2_shift5_ # # MMX ( dst + 8 , src16 + 8 , src8 + 8 , dstStride , src8Stride , h ) ; \
@ -162,12 +162,12 @@ static av_always_inline void ff_ ## OPNAME ## pixels16_l2_shift5_ ## MMX(uint8_t
# if ARCH_X86_64
# define QPEL_H264_H16_XMM(OPNAME, OP, MMX)\
void ff_avg_h264_qpel16_h_lowpass_l2_ssse3 ( uint8_t * dst , uint8_t * src , uint8_t * src2 , int dstStride , int src2Stride ) ;
void ff_put_h264_qpel16_h_lowpass_l2_ssse3 ( uint8_t * dst , uint8_t * src , uint8_t * src2 , int dstStride , int src2Stride ) ;
void ff_avg_h264_qpel16_h_lowpass_l2_ssse3 ( uint8_t * dst , const uint8_t * src , const uint8_t * src2 , int dstStride , int src2Stride ) ;
void ff_put_h264_qpel16_h_lowpass_l2_ssse3 ( uint8_t * dst , const uint8_t * src , const uint8_t * src2 , int dstStride , int src2Stride ) ;
# else // ARCH_X86_64
# define QPEL_H264_H16_XMM(OPNAME, OP, MMX)\
static av_always_inline void ff_ # # OPNAME # # h264_qpel16_h_lowpass_l2_ # # MMX ( uint8_t * dst , uint8_t * src , uint8_t * src2 , int dstStride , int src2Stride ) { \
static av_always_inline void ff_ # # OPNAME # # h264_qpel16_h_lowpass_l2_ # # MMX ( uint8_t * dst , const uint8_t * src , const uint8_t * src2 , int dstStride , int src2Stride ) { \
ff_ # # OPNAME # # h264_qpel8_h_lowpass_l2_ # # MMX ( dst , src , src2 , dstStride , src2Stride ) ; \
ff_ # # OPNAME # # h264_qpel8_h_lowpass_l2_ # # MMX ( dst + 8 , src + 8 , src2 + 8 , dstStride , src2Stride ) ; \
src + = 8 * dstStride ; \
@ -180,7 +180,7 @@ static av_always_inline void ff_ ## OPNAME ## h264_qpel16_h_lowpass_l2_ ## MMX(u
# define QPEL_H264_H_XMM(OPNAME, OP, MMX)\
QPEL_H264_H16_XMM ( OPNAME , OP , MMX ) \
static av_always_inline void ff_ # # OPNAME # # h264_qpel16_h_lowpass_ # # MMX ( uint8_t * dst , uint8_t * src , int dstStride , int srcStride ) { \
static av_always_inline void ff_ # # OPNAME # # h264_qpel16_h_lowpass_ # # MMX ( uint8_t * dst , const uint8_t * src , int dstStride , int srcStride ) { \
ff_ # # OPNAME # # h264_qpel8_h_lowpass_ # # MMX ( dst , src , dstStride , srcStride ) ; \
ff_ # # OPNAME # # h264_qpel8_h_lowpass_ # # MMX ( dst + 8 , src + 8 , dstStride , srcStride ) ; \
src + = 8 * srcStride ; \
@ -190,16 +190,16 @@ static av_always_inline void ff_ ## OPNAME ## h264_qpel16_h_lowpass_ ## MMX(uint
} \
# define QPEL_H264_V_XMM(OPNAME, OP, MMX)\
static av_always_inline void ff_ # # OPNAME # # h264_qpel8_v_lowpass_ # # MMX ( uint8_t * dst , uint8_t * src , int dstStride , int srcStride ) { \
static av_always_inline void ff_ # # OPNAME # # h264_qpel8_v_lowpass_ # # MMX ( uint8_t * dst , const uint8_t * src , int dstStride , int srcStride ) { \
ff_ # # OPNAME # # h264_qpel8or16_v_lowpass_ # # MMX ( dst , src , dstStride , srcStride , 8 ) ; \
} \
static av_always_inline void ff_ # # OPNAME # # h264_qpel16_v_lowpass_ # # MMX ( uint8_t * dst , uint8_t * src , int dstStride , int srcStride ) { \
static av_always_inline void ff_ # # OPNAME # # h264_qpel16_v_lowpass_ # # MMX ( uint8_t * dst , const uint8_t * src , int dstStride , int srcStride ) { \
ff_ # # OPNAME # # h264_qpel8or16_v_lowpass_ # # MMX ( dst , src , dstStride , srcStride , 16 ) ; \
ff_ # # OPNAME # # h264_qpel8or16_v_lowpass_ # # MMX ( dst + 8 , src + 8 , dstStride , srcStride , 16 ) ; \
}
static av_always_inline void put_h264_qpel8or16_hv1_lowpass_sse2 ( int16_t * tmp ,
uint8_t * src ,
const uint8_t * src ,
int tmpStride ,
int srcStride ,
int size )
@ -214,14 +214,14 @@ static av_always_inline void put_h264_qpel8or16_hv1_lowpass_sse2(int16_t *tmp,
}
# define QPEL_H264_HV_XMM(OPNAME, OP, MMX)\
static av_always_inline void ff_ # # OPNAME # # h264_qpel8or16_hv_lowpass_ # # MMX ( uint8_t * dst , int16_t * tmp , uint8_t * src , int dstStride , int tmpStride , int srcStride , int size ) { \
static av_always_inline void ff_ # # OPNAME # # h264_qpel8or16_hv_lowpass_ # # MMX ( uint8_t * dst , int16_t * tmp , const uint8_t * src , int dstStride , int tmpStride , int srcStride , int size ) { \
put_h264_qpel8or16_hv1_lowpass_sse2 ( tmp , src , tmpStride , srcStride , size ) ; \
ff_ # # OPNAME # # h264_qpel8or16_hv2_lowpass_ # # MMX ( dst , tmp , dstStride , tmpStride , size ) ; \
} \
static av_always_inline void ff_ # # OPNAME # # h264_qpel8_hv_lowpass_ # # MMX ( uint8_t * dst , int16_t * tmp , uint8_t * src , int dstStride , int tmpStride , int srcStride ) { \
static av_always_inline void ff_ # # OPNAME # # h264_qpel8_hv_lowpass_ # # MMX ( uint8_t * dst , int16_t * tmp , const uint8_t * src , int dstStride , int tmpStride , int srcStride ) { \
ff_ # # OPNAME # # h264_qpel8or16_hv_lowpass_ # # MMX ( dst , tmp , src , dstStride , tmpStride , srcStride , 8 ) ; \
} \
static av_always_inline void ff_ # # OPNAME # # h264_qpel16_hv_lowpass_ # # MMX ( uint8_t * dst , int16_t * tmp , uint8_t * src , int dstStride , int tmpStride , int srcStride ) { \
static av_always_inline void ff_ # # OPNAME # # h264_qpel16_hv_lowpass_ # # MMX ( uint8_t * dst , int16_t * tmp , const uint8_t * src , int dstStride , int tmpStride , int srcStride ) { \
ff_ # # OPNAME # # h264_qpel8or16_hv_lowpass_ # # MMX ( dst , tmp , src , dstStride , tmpStride , srcStride , 16 ) ; \
} \
@ -244,12 +244,12 @@ H264_MC_V(OPNAME, SIZE, MMX, ALIGN)\
H264_MC_H ( OPNAME , SIZE , MMX , ALIGN ) \
H264_MC_HV ( OPNAME , SIZE , MMX , ALIGN ) \
static void put_h264_qpel16_mc00_sse2 ( uint8_t * dst , uint8_t * src ,
static void put_h264_qpel16_mc00_sse2 ( uint8_t * dst , const uint8_t * src ,
ptrdiff_t stride )
{
ff_put_pixels16_sse2 ( dst , src , stride , 16 ) ;
}
static void avg_h264_qpel16_mc00_sse2 ( uint8_t * dst , uint8_t * src ,
static void avg_h264_qpel16_mc00_sse2 ( uint8_t * dst , const uint8_t * src ,
ptrdiff_t stride )
{
ff_avg_pixels16_sse2 ( dst , src , stride , 16 ) ;
@ -258,41 +258,41 @@ static void avg_h264_qpel16_mc00_sse2 (uint8_t *dst, uint8_t *src,
# define avg_h264_qpel8_mc00_sse2 avg_h264_qpel8_mc00_mmxext
# define H264_MC_C(OPNAME, SIZE, MMX, ALIGN) \
static void OPNAME # # h264_qpel # # SIZE # # _mc00_ # # MMX ( uint8_t * dst , uint8_t * src , ptrdiff_t stride ) \
static void OPNAME # # h264_qpel # # SIZE # # _mc00_ # # MMX ( uint8_t * dst , const uint8_t * src , ptrdiff_t stride ) \
{ \
ff_ # # OPNAME # # pixels # # SIZE # # _ # # MMX ( dst , src , stride , SIZE ) ; \
} \
# define H264_MC_H(OPNAME, SIZE, MMX, ALIGN) \
static void OPNAME # # h264_qpel # # SIZE # # _mc10_ # # MMX ( uint8_t * dst , uint8_t * src , ptrdiff_t stride ) \
static void OPNAME # # h264_qpel # # SIZE # # _mc10_ # # MMX ( uint8_t * dst , const uint8_t * src , ptrdiff_t stride ) \
{ \
ff_ # # OPNAME # # h264_qpel # # SIZE # # _h_lowpass_l2_ # # MMX ( dst , src , src , stride , stride ) ; \
} \
\
static void OPNAME # # h264_qpel # # SIZE # # _mc20_ # # MMX ( uint8_t * dst , uint8_t * src , ptrdiff_t stride ) \
static void OPNAME # # h264_qpel # # SIZE # # _mc20_ # # MMX ( uint8_t * dst , const uint8_t * src , ptrdiff_t stride ) \
{ \
ff_ # # OPNAME # # h264_qpel # # SIZE # # _h_lowpass_ # # MMX ( dst , src , stride , stride ) ; \
} \
\
static void OPNAME # # h264_qpel # # SIZE # # _mc30_ # # MMX ( uint8_t * dst , uint8_t * src , ptrdiff_t stride ) \
static void OPNAME # # h264_qpel # # SIZE # # _mc30_ # # MMX ( uint8_t * dst , const uint8_t * src , ptrdiff_t stride ) \
{ \
ff_ # # OPNAME # # h264_qpel # # SIZE # # _h_lowpass_l2_ # # MMX ( dst , src , src + 1 , stride , stride ) ; \
} \
# define H264_MC_V(OPNAME, SIZE, MMX, ALIGN) \
static void OPNAME # # h264_qpel # # SIZE # # _mc01_ # # MMX ( uint8_t * dst , uint8_t * src , ptrdiff_t stride ) \
static void OPNAME # # h264_qpel # # SIZE # # _mc01_ # # MMX ( uint8_t * dst , const uint8_t * src , ptrdiff_t stride ) \
{ \
DECLARE_ALIGNED ( ALIGN , uint8_t , temp ) [ SIZE * SIZE ] ; \
ff_put_h264_qpel # # SIZE # # _v_lowpass_ # # MMX ( temp , src , SIZE , stride ) ; \
ff_ # # OPNAME # # pixels # # SIZE # # _l2_ # # MMX ( dst , src , temp , stride , stride , SIZE ) ; \
} \
\
static void OPNAME # # h264_qpel # # SIZE # # _mc02_ # # MMX ( uint8_t * dst , uint8_t * src , ptrdiff_t stride ) \
static void OPNAME # # h264_qpel # # SIZE # # _mc02_ # # MMX ( uint8_t * dst , const uint8_t * src , ptrdiff_t stride ) \
{ \
ff_ # # OPNAME # # h264_qpel # # SIZE # # _v_lowpass_ # # MMX ( dst , src , stride , stride ) ; \
} \
\
static void OPNAME # # h264_qpel # # SIZE # # _mc03_ # # MMX ( uint8_t * dst , uint8_t * src , ptrdiff_t stride ) \
static void OPNAME # # h264_qpel # # SIZE # # _mc03_ # # MMX ( uint8_t * dst , const uint8_t * src , ptrdiff_t stride ) \
{ \
DECLARE_ALIGNED ( ALIGN , uint8_t , temp ) [ SIZE * SIZE ] ; \
ff_put_h264_qpel # # SIZE # # _v_lowpass_ # # MMX ( temp , src , SIZE , stride ) ; \
@ -300,41 +300,41 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc03_ ## MMX(uint8_t *dst, uint8_t *
} \
# define H264_MC_HV(OPNAME, SIZE, MMX, ALIGN) \
static void OPNAME # # h264_qpel # # SIZE # # _mc11_ # # MMX ( uint8_t * dst , uint8_t * src , ptrdiff_t stride ) \
static void OPNAME # # h264_qpel # # SIZE # # _mc11_ # # MMX ( uint8_t * dst , const uint8_t * src , ptrdiff_t stride ) \
{ \
DECLARE_ALIGNED ( ALIGN , uint8_t , temp ) [ SIZE * SIZE ] ; \
ff_put_h264_qpel # # SIZE # # _v_lowpass_ # # MMX ( temp , src , SIZE , stride ) ; \
ff_ # # OPNAME # # h264_qpel # # SIZE # # _h_lowpass_l2_ # # MMX ( dst , src , temp , stride , SIZE ) ; \
} \
\
static void OPNAME # # h264_qpel # # SIZE # # _mc31_ # # MMX ( uint8_t * dst , uint8_t * src , ptrdiff_t stride ) \
static void OPNAME # # h264_qpel # # SIZE # # _mc31_ # # MMX ( uint8_t * dst , const uint8_t * src , ptrdiff_t stride ) \
{ \
DECLARE_ALIGNED ( ALIGN , uint8_t , temp ) [ SIZE * SIZE ] ; \
ff_put_h264_qpel # # SIZE # # _v_lowpass_ # # MMX ( temp , src + 1 , SIZE , stride ) ; \
ff_ # # OPNAME # # h264_qpel # # SIZE # # _h_lowpass_l2_ # # MMX ( dst , src , temp , stride , SIZE ) ; \
} \
\
static void OPNAME # # h264_qpel # # SIZE # # _mc13_ # # MMX ( uint8_t * dst , uint8_t * src , ptrdiff_t stride ) \
static void OPNAME # # h264_qpel # # SIZE # # _mc13_ # # MMX ( uint8_t * dst , const uint8_t * src , ptrdiff_t stride ) \
{ \
DECLARE_ALIGNED ( ALIGN , uint8_t , temp ) [ SIZE * SIZE ] ; \
ff_put_h264_qpel # # SIZE # # _v_lowpass_ # # MMX ( temp , src , SIZE , stride ) ; \
ff_ # # OPNAME # # h264_qpel # # SIZE # # _h_lowpass_l2_ # # MMX ( dst , src + stride , temp , stride , SIZE ) ; \
} \
\
static void OPNAME # # h264_qpel # # SIZE # # _mc33_ # # MMX ( uint8_t * dst , uint8_t * src , ptrdiff_t stride ) \
static void OPNAME # # h264_qpel # # SIZE # # _mc33_ # # MMX ( uint8_t * dst , const uint8_t * src , ptrdiff_t stride ) \
{ \
DECLARE_ALIGNED ( ALIGN , uint8_t , temp ) [ SIZE * SIZE ] ; \
ff_put_h264_qpel # # SIZE # # _v_lowpass_ # # MMX ( temp , src + 1 , SIZE , stride ) ; \
ff_ # # OPNAME # # h264_qpel # # SIZE # # _h_lowpass_l2_ # # MMX ( dst , src + stride , temp , stride , SIZE ) ; \
} \
\
static void OPNAME # # h264_qpel # # SIZE # # _mc22_ # # MMX ( uint8_t * dst , uint8_t * src , ptrdiff_t stride ) \
static void OPNAME # # h264_qpel # # SIZE # # _mc22_ # # MMX ( uint8_t * dst , const uint8_t * src , ptrdiff_t stride ) \
{ \
DECLARE_ALIGNED ( ALIGN , uint16_t , temp ) [ SIZE * ( SIZE < 8 ? 12 : 24 ) ] ; \
ff_ # # OPNAME # # h264_qpel # # SIZE # # _hv_lowpass_ # # MMX ( dst , temp , src , stride , SIZE , stride ) ; \
} \
\
static void OPNAME # # h264_qpel # # SIZE # # _mc21_ # # MMX ( uint8_t * dst , uint8_t * src , ptrdiff_t stride ) \
static void OPNAME # # h264_qpel # # SIZE # # _mc21_ # # MMX ( uint8_t * dst , const uint8_t * src , ptrdiff_t stride ) \
{ \
DECLARE_ALIGNED ( ALIGN , uint8_t , temp ) [ SIZE * ( SIZE < 8 ? 12 : 24 ) * 2 + SIZE * SIZE ] ; \
uint8_t * const halfHV = temp ; \
@ -344,7 +344,7 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc21_ ## MMX(uint8_t *dst, uint8_t *
ff_ # # OPNAME # # h264_qpel # # SIZE # # _h_lowpass_l2_ # # MMX ( dst , src , halfHV , stride , SIZE ) ; \
} \
\
static void OPNAME # # h264_qpel # # SIZE # # _mc23_ # # MMX ( uint8_t * dst , uint8_t * src , ptrdiff_t stride ) \
static void OPNAME # # h264_qpel # # SIZE # # _mc23_ # # MMX ( uint8_t * dst , const uint8_t * src , ptrdiff_t stride ) \
{ \
DECLARE_ALIGNED ( ALIGN , uint8_t , temp ) [ SIZE * ( SIZE < 8 ? 12 : 24 ) * 2 + SIZE * SIZE ] ; \
uint8_t * const halfHV = temp ; \
@ -354,7 +354,7 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc23_ ## MMX(uint8_t *dst, uint8_t *
ff_ # # OPNAME # # h264_qpel # # SIZE # # _h_lowpass_l2_ # # MMX ( dst , src + stride , halfHV , stride , SIZE ) ; \
} \
\
static void OPNAME # # h264_qpel # # SIZE # # _mc12_ # # MMX ( uint8_t * dst , uint8_t * src , ptrdiff_t stride ) \
static void OPNAME # # h264_qpel # # SIZE # # _mc12_ # # MMX ( uint8_t * dst , const uint8_t * src , ptrdiff_t stride ) \
{ \
DECLARE_ALIGNED ( ALIGN , uint8_t , temp ) [ SIZE * ( SIZE < 8 ? 12 : 24 ) * 2 + SIZE * SIZE ] ; \
uint8_t * const halfHV = temp ; \
@ -364,7 +364,7 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc12_ ## MMX(uint8_t *dst, uint8_t *
ff_ # # OPNAME # # pixels # # SIZE # # _l2_shift5_mmxext ( dst , halfV + 2 , halfHV , stride , SIZE , SIZE ) ; \
} \
\
static void OPNAME # # h264_qpel # # SIZE # # _mc32_ # # MMX ( uint8_t * dst , uint8_t * src , ptrdiff_t stride ) \
static void OPNAME # # h264_qpel # # SIZE # # _mc32_ # # MMX ( uint8_t * dst , const uint8_t * src , ptrdiff_t stride ) \
{ \
DECLARE_ALIGNED ( ALIGN , uint8_t , temp ) [ SIZE * ( SIZE < 8 ? 12 : 24 ) * 2 + SIZE * SIZE ] ; \
uint8_t * const halfHV = temp ; \
@ -409,7 +409,7 @@ H264_MC_816(H264_MC_HV, ssse3)
//10bit
# define LUMA_MC_OP(OP, NUM, DEPTH, TYPE, OPT) \
void ff_ # # OP # # _h264_qpel # # NUM # # _ # # TYPE # # _ # # DEPTH # # _ # # OPT \
( uint8_t * dst , uint8_t * src , ptrdiff_t stride ) ;
( uint8_t * dst , const uint8_t * src , ptrdiff_t stride ) ;
# define LUMA_MC_ALL(DEPTH, TYPE, OPT) \
LUMA_MC_OP ( put , 4 , DEPTH , TYPE , OPT ) \
@ -466,7 +466,7 @@ LUMA_MC_816(10, mc23, sse2)
LUMA_MC_816 ( 10 , mc33 , sse2 )
# define QPEL16_OPMC(OP, MC, MMX)\
void ff_ # # OP # # _h264_qpel16_ # # MC # # _10_ # # MMX ( uint8_t * dst , uint8_t * src , ptrdiff_t stride ) { \
void ff_ # # OP # # _h264_qpel16_ # # MC # # _10_ # # MMX ( uint8_t * dst , const uint8_t * src , ptrdiff_t stride ) { \
ff_ # # OP # # _h264_qpel8_ # # MC # # _10_ # # MMX ( dst , src , stride ) ; \
ff_ # # OP # # _h264_qpel8_ # # MC # # _10_ # # MMX ( dst + 16 , src + 16 , stride ) ; \
src + = 8 * stride ; \