|
|
|
@@ -71,6 +71,17 @@ void ff_ ## OPNAME ## _pixels8_l2_shift5_mmxext(uint8_t *dst, const int16_t *src |
|
|
|
DEF_QPEL(avg) |
|
|
|
DEF_QPEL(put) |
|
|
|
|
|
|
|
static av_always_inline void ff_put_h264_qpel8or16_hv1_lowpass_mmxext(int16_t *tmp, const uint8_t *src, int tmpStride, int srcStride, int size) |
|
|
|
{ |
|
|
|
int w = (size + 8) >> 2; |
|
|
|
src -= 2 * srcStride + 2; |
|
|
|
while (w--) { |
|
|
|
ff_put_h264_qpel8or16_hv1_lowpass_op_mmxext(src, tmp, srcStride, size); |
|
|
|
tmp += 4; |
|
|
|
src += 4; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
#define QPEL_H264(OPNAME, OP, MMX)\ |
|
|
|
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;\ |
|
|
|
@@ -91,15 +102,6 @@ static av_always_inline void ff_ ## OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(u |
|
|
|
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, const uint8_t *src, int tmpStride, int srcStride, int size){\ |
|
|
|
int w = (size+8)>>2;\ |
|
|
|
src -= 2*srcStride+2;\ |
|
|
|
while(w--){\ |
|
|
|
ff_ ## OPNAME ## h264_qpel8or16_hv1_lowpass_op_mmxext(src, tmp, srcStride, size);\ |
|
|
|
tmp += 4;\ |
|
|
|
src += 4;\ |
|
|
|
}\ |
|
|
|
}\ |
|
|
|
static av_always_inline void ff_ ## OPNAME ## h264_qpel8or16_hv2_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, int dstStride, int tmpStride, int size){\ |
|
|
|
int w = size>>4;\ |
|
|
|
do{\ |
|
|
|
|