You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-10-06 05:47:18 +02:00
avcodec/x86/qpel{,dsp_init}: Remove constant function parameters
ff_avg_pixels{4,8,16}_l2_mmxext() are always called with height equal to their blocksize. And ff_{put,avg}_pixels4_l2_mmxext() are furthermore always called with both strides being equal. So remove these redundant function parameters. Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
@@ -31,21 +31,27 @@
|
|||||||
|
|
||||||
#if HAVE_X86ASM
|
#if HAVE_X86ASM
|
||||||
void ff_put_pixels4_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
|
void ff_put_pixels4_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
|
||||||
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
ptrdiff_t stride);
|
||||||
void ff_avg_pixels4_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
|
void ff_avg_pixels4_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
|
||||||
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
ptrdiff_t stride);
|
||||||
void ff_put_pixels8_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
|
void ff_put_pixels8_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
|
||||||
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
||||||
void ff_avg_pixels8_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
|
void ff_avg_pixels8_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
|
||||||
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
ptrdiff_t dstStride, ptrdiff_t src1Stride);
|
||||||
void ff_put_pixels16_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
|
void ff_put_pixels16_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
|
||||||
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
||||||
void ff_avg_pixels16_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
|
void ff_avg_pixels16_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
|
||||||
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
ptrdiff_t dstStride, ptrdiff_t src1Stride);
|
||||||
|
#define ff_put_pixels4_l2_mmxext(dst, src1, src2, dststride, src1stride, h) \
|
||||||
|
ff_put_pixels4_l2_mmxext((dst), (src1), (src2), (dststride))
|
||||||
|
#define ff_avg_pixels4_l2_mmxext(dst, src1, src2, dststride, src1stride, h) \
|
||||||
|
ff_avg_pixels4_l2_mmxext((dst), (src1), (src2), (dststride))
|
||||||
#define ff_put_pixels8_l2_sse2 ff_put_pixels8_l2_mmxext
|
#define ff_put_pixels8_l2_sse2 ff_put_pixels8_l2_mmxext
|
||||||
#define ff_avg_pixels8_l2_sse2 ff_avg_pixels8_l2_mmxext
|
#define ff_avg_pixels8_l2_sse2(dst, src1, src2, dststride, src1stride, h) \
|
||||||
|
ff_avg_pixels8_l2_mmxext((dst), (src1), (src2), (dststride), (src1stride))
|
||||||
#define ff_put_pixels16_l2_sse2 ff_put_pixels16_l2_mmxext
|
#define ff_put_pixels16_l2_sse2 ff_put_pixels16_l2_mmxext
|
||||||
#define ff_avg_pixels16_l2_sse2 ff_avg_pixels16_l2_mmxext
|
#define ff_avg_pixels16_l2_sse2(dst, src1, src2, dststride, src1stride, h) \
|
||||||
|
ff_avg_pixels16_l2_mmxext((dst), (src1), (src2), (dststride), (src1stride))
|
||||||
#define ff_put_pixels4_mmxext(...)
|
#define ff_put_pixels4_mmxext(...)
|
||||||
|
|
||||||
#define DEF_QPEL(OPNAME)\
|
#define DEF_QPEL(OPNAME)\
|
||||||
|
@@ -45,20 +45,20 @@ SECTION .text
|
|||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
; void ff_put/avg_pixels4_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2,
|
; void ff_put/avg_pixels4_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2,
|
||||||
; ptrdiff_t dstStride, ptrdiff_t src1Stride, int h)
|
; ptrdiff_t stride)
|
||||||
%macro PIXELS4_L2 1
|
%macro PIXELS4_L2 1
|
||||||
%define OP op_%1h
|
%define OP op_%1h
|
||||||
cglobal %1_pixels4_l2, 6,6
|
cglobal %1_pixels4_l2, 4,4
|
||||||
mova m0, [r1]
|
mova m0, [r1]
|
||||||
mova m1, [r1+r4]
|
mova m1, [r1+r3]
|
||||||
lea r1, [r1+2*r4]
|
lea r1, [r1+2*r3]
|
||||||
pavgb m0, [r2]
|
pavgb m0, [r2]
|
||||||
pavgb m1, [r2+4]
|
pavgb m1, [r2+4]
|
||||||
OP m0, [r0], m3
|
OP m0, [r0], m3
|
||||||
OP m1, [r0+r3], m3
|
OP m1, [r0+r3], m3
|
||||||
lea r0, [r0+2*r3]
|
lea r0, [r0+2*r3]
|
||||||
mova m0, [r1]
|
mova m0, [r1]
|
||||||
mova m1, [r1+r4]
|
mova m1, [r1+r3]
|
||||||
pavgb m0, [r2+8]
|
pavgb m0, [r2+8]
|
||||||
pavgb m1, [r2+12]
|
pavgb m1, [r2+12]
|
||||||
OP m0, [r0], m3
|
OP m0, [r0], m3
|
||||||
@@ -70,12 +70,12 @@ INIT_MMX mmxext
|
|||||||
PIXELS4_L2 put
|
PIXELS4_L2 put
|
||||||
PIXELS4_L2 avg
|
PIXELS4_L2 avg
|
||||||
|
|
||||||
; void ff_put/avg_pixels8_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2,
|
|
||||||
; ptrdiff_t dstStride, ptrdiff_t src1Stride, int h)
|
|
||||||
%macro PIXELS8_L2 1
|
%macro PIXELS8_L2 1
|
||||||
%define OP op_%1
|
%define OP op_%1
|
||||||
cglobal %1_pixels8_l2, 6,6
|
|
||||||
%ifidn %1, put
|
%ifidn %1, put
|
||||||
|
; void ff_put_pixels8_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2,
|
||||||
|
; ptrdiff_t dstStride, ptrdiff_t src1Stride, int h)
|
||||||
|
cglobal put_pixels8_l2, 6,6
|
||||||
test r5d, 1
|
test r5d, 1
|
||||||
je .loop
|
je .loop
|
||||||
mova m0, [r1]
|
mova m0, [r1]
|
||||||
@@ -86,6 +86,11 @@ cglobal %1_pixels8_l2, 6,6
|
|||||||
OP m0, [r0]
|
OP m0, [r0]
|
||||||
add r0, r3
|
add r0, r3
|
||||||
dec r5d
|
dec r5d
|
||||||
|
%else
|
||||||
|
; void ff_avg_pixels8_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2,
|
||||||
|
; ptrdiff_t dstStride, ptrdiff_t src1Stride)
|
||||||
|
cglobal avg_pixels8_l2, 5,6
|
||||||
|
mov r5d, 8
|
||||||
%endif
|
%endif
|
||||||
.loop:
|
.loop:
|
||||||
mova m0, [r1]
|
mova m0, [r1]
|
||||||
@@ -114,12 +119,12 @@ INIT_MMX mmxext
|
|||||||
PIXELS8_L2 put
|
PIXELS8_L2 put
|
||||||
PIXELS8_L2 avg
|
PIXELS8_L2 avg
|
||||||
|
|
||||||
; void ff_put/avg_pixels16_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2,
|
|
||||||
; ptrdiff_t dstStride, ptrdiff_t src1Stride, int h)
|
|
||||||
%macro PIXELS16_L2 1
|
%macro PIXELS16_L2 1
|
||||||
%define OP op_%1
|
%define OP op_%1
|
||||||
cglobal %1_pixels16_l2, 6,6
|
|
||||||
%ifidn %1, put
|
%ifidn %1, put
|
||||||
|
; void ff_put_pixels16_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2,
|
||||||
|
; ptrdiff_t dstStride, ptrdiff_t src1Stride, int h)
|
||||||
|
cglobal put_pixels16_l2, 6,6
|
||||||
test r5d, 1
|
test r5d, 1
|
||||||
je .loop
|
je .loop
|
||||||
mova m0, [r1]
|
mova m0, [r1]
|
||||||
@@ -132,6 +137,11 @@ cglobal %1_pixels16_l2, 6,6
|
|||||||
OP m1, [r0+8]
|
OP m1, [r0+8]
|
||||||
add r0, r3
|
add r0, r3
|
||||||
dec r5d
|
dec r5d
|
||||||
|
%else
|
||||||
|
; void ff_avg_pixels16_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2,
|
||||||
|
; ptrdiff_t dstStride, ptrdiff_t src1Stride)
|
||||||
|
cglobal avg_pixels16_l2, 5,6
|
||||||
|
mov r5d, 16
|
||||||
%endif
|
%endif
|
||||||
.loop:
|
.loop:
|
||||||
mova m0, [r1]
|
mova m0, [r1]
|
||||||
|
@@ -39,13 +39,13 @@ void ff_put_no_rnd_pixels8_l2_mmxext(uint8_t *dst,
|
|||||||
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
||||||
void ff_avg_pixels8_l2_mmxext(uint8_t *dst,
|
void ff_avg_pixels8_l2_mmxext(uint8_t *dst,
|
||||||
const uint8_t *src1, const uint8_t *src2,
|
const uint8_t *src1, const uint8_t *src2,
|
||||||
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
ptrdiff_t dstStride, ptrdiff_t src1Stride);
|
||||||
void ff_put_pixels16_l2_mmxext(uint8_t *dst,
|
void ff_put_pixels16_l2_mmxext(uint8_t *dst,
|
||||||
const uint8_t *src1, const uint8_t *src2,
|
const uint8_t *src1, const uint8_t *src2,
|
||||||
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
||||||
void ff_avg_pixels16_l2_mmxext(uint8_t *dst,
|
void ff_avg_pixels16_l2_mmxext(uint8_t *dst,
|
||||||
const uint8_t *src1, const uint8_t *src2,
|
const uint8_t *src1, const uint8_t *src2,
|
||||||
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
ptrdiff_t dstStride, ptrdiff_t src1Stride);
|
||||||
void ff_put_no_rnd_pixels16_l2_mmxext(uint8_t *dst,
|
void ff_put_no_rnd_pixels16_l2_mmxext(uint8_t *dst,
|
||||||
const uint8_t *src1, const uint8_t *src2,
|
const uint8_t *src1, const uint8_t *src2,
|
||||||
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
||||||
@@ -82,7 +82,7 @@ void ff_put_no_rnd_mpeg4_qpel8_v_lowpass_mmxext(uint8_t *dst,
|
|||||||
|
|
||||||
#if HAVE_X86ASM
|
#if HAVE_X86ASM
|
||||||
|
|
||||||
#define QPEL_OP(OPNAME, RND, MMX) \
|
#define QPEL_OP(OPNAME, RND, MMX, ARG) \
|
||||||
static void OPNAME ## qpel8_mc10_ ## MMX(uint8_t *dst, \
|
static void OPNAME ## qpel8_mc10_ ## MMX(uint8_t *dst, \
|
||||||
const uint8_t *src, \
|
const uint8_t *src, \
|
||||||
ptrdiff_t stride) \
|
ptrdiff_t stride) \
|
||||||
@@ -91,8 +91,8 @@ static void OPNAME ## qpel8_mc10_ ## MMX(uint8_t *dst, \
|
|||||||
uint8_t *const half = (uint8_t *) temp; \
|
uint8_t *const half = (uint8_t *) temp; \
|
||||||
ff_put ## RND ## mpeg4_qpel8_h_lowpass_ ## MMX(half, src, 8, \
|
ff_put ## RND ## mpeg4_qpel8_h_lowpass_ ## MMX(half, src, 8, \
|
||||||
stride, 8); \
|
stride, 8); \
|
||||||
ff_ ## OPNAME ## pixels8_l2_ ## MMX(dst, src, half, \
|
ff_ ## OPNAME ## pixels8_l2_ ## MMX(ARG(dst, src, half, \
|
||||||
stride, stride, 8); \
|
stride, stride, 8)); \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static void OPNAME ## qpel8_mc20_ ## MMX(uint8_t *dst, \
|
static void OPNAME ## qpel8_mc20_ ## MMX(uint8_t *dst, \
|
||||||
@@ -111,8 +111,8 @@ static void OPNAME ## qpel8_mc30_ ## MMX(uint8_t *dst, \
|
|||||||
uint8_t *const half = (uint8_t *) temp; \
|
uint8_t *const half = (uint8_t *) temp; \
|
||||||
ff_put ## RND ## mpeg4_qpel8_h_lowpass_ ## MMX(half, src, 8, \
|
ff_put ## RND ## mpeg4_qpel8_h_lowpass_ ## MMX(half, src, 8, \
|
||||||
stride, 8); \
|
stride, 8); \
|
||||||
ff_ ## OPNAME ## pixels8_l2_ ## MMX(dst, src + 1, half, stride, \
|
ff_ ## OPNAME ## pixels8_l2_ ## MMX(ARG(dst, src + 1, half, \
|
||||||
stride, 8); \
|
stride, stride, 8)); \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static void OPNAME ## qpel8_mc01_ ## MMX(uint8_t *dst, \
|
static void OPNAME ## qpel8_mc01_ ## MMX(uint8_t *dst, \
|
||||||
@@ -123,8 +123,8 @@ static void OPNAME ## qpel8_mc01_ ## MMX(uint8_t *dst, \
|
|||||||
uint8_t *const half = (uint8_t *) temp; \
|
uint8_t *const half = (uint8_t *) temp; \
|
||||||
ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(half, src, \
|
ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(half, src, \
|
||||||
8, stride); \
|
8, stride); \
|
||||||
ff_ ## OPNAME ## pixels8_l2_ ## MMX(dst, src, half, \
|
ff_ ## OPNAME ## pixels8_l2_ ## MMX(ARG(dst, src, half, \
|
||||||
stride, stride, 8); \
|
stride, stride, 8)); \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static void OPNAME ## qpel8_mc02_ ## MMX(uint8_t *dst, \
|
static void OPNAME ## qpel8_mc02_ ## MMX(uint8_t *dst, \
|
||||||
@@ -143,8 +143,8 @@ static void OPNAME ## qpel8_mc03_ ## MMX(uint8_t *dst, \
|
|||||||
uint8_t *const half = (uint8_t *) temp; \
|
uint8_t *const half = (uint8_t *) temp; \
|
||||||
ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(half, src, \
|
ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(half, src, \
|
||||||
8, stride); \
|
8, stride); \
|
||||||
ff_ ## OPNAME ## pixels8_l2_ ## MMX(dst, src + stride, half, stride,\
|
ff_ ## OPNAME ## pixels8_l2_ ## MMX(ARG(dst, src + stride, half, \
|
||||||
stride, 8); \
|
stride, stride, 8)); \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static void OPNAME ## qpel8_mc11_ ## MMX(uint8_t *dst, \
|
static void OPNAME ## qpel8_mc11_ ## MMX(uint8_t *dst, \
|
||||||
@@ -159,8 +159,8 @@ static void OPNAME ## qpel8_mc11_ ## MMX(uint8_t *dst, \
|
|||||||
ff_put ## RND ## pixels8_l2_ ## MMX(halfH, src, halfH, 8, \
|
ff_put ## RND ## pixels8_l2_ ## MMX(halfH, src, halfH, 8, \
|
||||||
stride, 9); \
|
stride, 9); \
|
||||||
ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\
|
ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\
|
||||||
ff_ ## OPNAME ## pixels8_l2_ ## MMX(dst, halfH, halfHV, \
|
ff_ ## OPNAME ## pixels8_l2_ ## MMX(ARG(dst, halfH, halfHV, \
|
||||||
stride, 8, 8); \
|
stride, 8, 8)); \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static void OPNAME ## qpel8_mc31_ ## MMX(uint8_t *dst, \
|
static void OPNAME ## qpel8_mc31_ ## MMX(uint8_t *dst, \
|
||||||
@@ -175,8 +175,8 @@ static void OPNAME ## qpel8_mc31_ ## MMX(uint8_t *dst, \
|
|||||||
ff_put ## RND ## pixels8_l2_ ## MMX(halfH, src + 1, halfH, 8, \
|
ff_put ## RND ## pixels8_l2_ ## MMX(halfH, src + 1, halfH, 8, \
|
||||||
stride, 9); \
|
stride, 9); \
|
||||||
ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\
|
ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\
|
||||||
ff_ ## OPNAME ## pixels8_l2_ ## MMX(dst, halfH, halfHV, \
|
ff_ ## OPNAME ## pixels8_l2_ ## MMX(ARG(dst, halfH, halfHV, \
|
||||||
stride, 8, 8); \
|
stride, 8, 8)); \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static void OPNAME ## qpel8_mc13_ ## MMX(uint8_t *dst, \
|
static void OPNAME ## qpel8_mc13_ ## MMX(uint8_t *dst, \
|
||||||
@@ -191,8 +191,8 @@ static void OPNAME ## qpel8_mc13_ ## MMX(uint8_t *dst, \
|
|||||||
ff_put ## RND ## pixels8_l2_ ## MMX(halfH, src, halfH, 8, \
|
ff_put ## RND ## pixels8_l2_ ## MMX(halfH, src, halfH, 8, \
|
||||||
stride, 9); \
|
stride, 9); \
|
||||||
ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\
|
ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\
|
||||||
ff_ ## OPNAME ## pixels8_l2_ ## MMX(dst, halfH + 8, halfHV, \
|
ff_ ## OPNAME ## pixels8_l2_ ## MMX(ARG(dst, halfH + 8, halfHV, \
|
||||||
stride, 8, 8); \
|
stride, 8, 8)); \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static void OPNAME ## qpel8_mc33_ ## MMX(uint8_t *dst, \
|
static void OPNAME ## qpel8_mc33_ ## MMX(uint8_t *dst, \
|
||||||
@@ -207,8 +207,8 @@ static void OPNAME ## qpel8_mc33_ ## MMX(uint8_t *dst, \
|
|||||||
ff_put ## RND ## pixels8_l2_ ## MMX(halfH, src + 1, halfH, 8, \
|
ff_put ## RND ## pixels8_l2_ ## MMX(halfH, src + 1, halfH, 8, \
|
||||||
stride, 9); \
|
stride, 9); \
|
||||||
ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\
|
ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\
|
||||||
ff_ ## OPNAME ## pixels8_l2_ ## MMX(dst, halfH + 8, halfHV, \
|
ff_ ## OPNAME ## pixels8_l2_ ## MMX(ARG(dst, halfH + 8, halfHV, \
|
||||||
stride, 8, 8); \
|
stride, 8, 8)); \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static void OPNAME ## qpel8_mc21_ ## MMX(uint8_t *dst, \
|
static void OPNAME ## qpel8_mc21_ ## MMX(uint8_t *dst, \
|
||||||
@@ -221,8 +221,8 @@ static void OPNAME ## qpel8_mc21_ ## MMX(uint8_t *dst, \
|
|||||||
ff_put ## RND ## mpeg4_qpel8_h_lowpass_ ## MMX(halfH, src, 8, \
|
ff_put ## RND ## mpeg4_qpel8_h_lowpass_ ## MMX(halfH, src, 8, \
|
||||||
stride, 9); \
|
stride, 9); \
|
||||||
ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\
|
ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\
|
||||||
ff_ ## OPNAME ## pixels8_l2_ ## MMX(dst, halfH, halfHV, \
|
ff_ ## OPNAME ## pixels8_l2_ ## MMX(ARG(dst, halfH, halfHV, \
|
||||||
stride, 8, 8); \
|
stride, 8, 8)); \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static void OPNAME ## qpel8_mc23_ ## MMX(uint8_t *dst, \
|
static void OPNAME ## qpel8_mc23_ ## MMX(uint8_t *dst, \
|
||||||
@@ -235,8 +235,8 @@ static void OPNAME ## qpel8_mc23_ ## MMX(uint8_t *dst, \
|
|||||||
ff_put ## RND ## mpeg4_qpel8_h_lowpass_ ## MMX(halfH, src, 8, \
|
ff_put ## RND ## mpeg4_qpel8_h_lowpass_ ## MMX(halfH, src, 8, \
|
||||||
stride, 9); \
|
stride, 9); \
|
||||||
ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\
|
ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\
|
||||||
ff_ ## OPNAME ## pixels8_l2_ ## MMX(dst, halfH + 8, halfHV, \
|
ff_ ## OPNAME ## pixels8_l2_ ## MMX(ARG(dst, halfH + 8, halfHV, \
|
||||||
stride, 8, 8); \
|
stride, 8, 8)); \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static void OPNAME ## qpel8_mc12_ ## MMX(uint8_t *dst, \
|
static void OPNAME ## qpel8_mc12_ ## MMX(uint8_t *dst, \
|
||||||
@@ -287,8 +287,8 @@ static void OPNAME ## qpel16_mc10_ ## MMX(uint8_t *dst, \
|
|||||||
uint8_t *const half = (uint8_t *) temp; \
|
uint8_t *const half = (uint8_t *) temp; \
|
||||||
ff_put ## RND ## mpeg4_qpel16_h_lowpass_ ## MMX(half, src, 16, \
|
ff_put ## RND ## mpeg4_qpel16_h_lowpass_ ## MMX(half, src, 16, \
|
||||||
stride, 16); \
|
stride, 16); \
|
||||||
ff_ ## OPNAME ## pixels16_l2_ ## MMX(dst, src, half, stride, \
|
ff_ ## OPNAME ## pixels16_l2_ ## MMX(ARG(dst, src, half, \
|
||||||
stride, 16); \
|
stride, stride, 16)); \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static void OPNAME ## qpel16_mc20_ ## MMX(uint8_t *dst, \
|
static void OPNAME ## qpel16_mc20_ ## MMX(uint8_t *dst, \
|
||||||
@@ -307,8 +307,8 @@ static void OPNAME ## qpel16_mc30_ ## MMX(uint8_t *dst, \
|
|||||||
uint8_t *const half = (uint8_t*) temp; \
|
uint8_t *const half = (uint8_t*) temp; \
|
||||||
ff_put ## RND ## mpeg4_qpel16_h_lowpass_ ## MMX(half, src, 16, \
|
ff_put ## RND ## mpeg4_qpel16_h_lowpass_ ## MMX(half, src, 16, \
|
||||||
stride, 16); \
|
stride, 16); \
|
||||||
ff_ ## OPNAME ## pixels16_l2_ ## MMX(dst, src + 1, half, \
|
ff_ ## OPNAME ## pixels16_l2_ ## MMX(ARG(dst, src + 1, half, \
|
||||||
stride, stride, 16); \
|
stride, stride, 16)); \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static void OPNAME ## qpel16_mc01_ ## MMX(uint8_t *dst, \
|
static void OPNAME ## qpel16_mc01_ ## MMX(uint8_t *dst, \
|
||||||
@@ -319,8 +319,8 @@ static void OPNAME ## qpel16_mc01_ ## MMX(uint8_t *dst, \
|
|||||||
uint8_t *const half = (uint8_t *) temp; \
|
uint8_t *const half = (uint8_t *) temp; \
|
||||||
ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(half, src, 16, \
|
ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(half, src, 16, \
|
||||||
stride); \
|
stride); \
|
||||||
ff_ ## OPNAME ## pixels16_l2_ ## MMX(dst, src, half, stride, \
|
ff_ ## OPNAME ## pixels16_l2_ ## MMX(ARG(dst, src, half, \
|
||||||
stride, 16); \
|
stride, stride, 16)); \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static void OPNAME ## qpel16_mc02_ ## MMX(uint8_t *dst, \
|
static void OPNAME ## qpel16_mc02_ ## MMX(uint8_t *dst, \
|
||||||
@@ -339,8 +339,8 @@ static void OPNAME ## qpel16_mc03_ ## MMX(uint8_t *dst, \
|
|||||||
uint8_t *const half = (uint8_t *) temp; \
|
uint8_t *const half = (uint8_t *) temp; \
|
||||||
ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(half, src, 16, \
|
ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(half, src, 16, \
|
||||||
stride); \
|
stride); \
|
||||||
ff_ ## OPNAME ## pixels16_l2_ ## MMX(dst, src+stride, half, \
|
ff_ ## OPNAME ## pixels16_l2_ ## MMX(ARG(dst, src+stride, half, \
|
||||||
stride, stride, 16); \
|
stride, stride, 16)); \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static void OPNAME ## qpel16_mc11_ ## MMX(uint8_t *dst, \
|
static void OPNAME ## qpel16_mc11_ ## MMX(uint8_t *dst, \
|
||||||
@@ -356,8 +356,8 @@ static void OPNAME ## qpel16_mc11_ ## MMX(uint8_t *dst, \
|
|||||||
stride, 17); \
|
stride, 17); \
|
||||||
ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH, \
|
ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH, \
|
||||||
16, 16); \
|
16, 16); \
|
||||||
ff_ ## OPNAME ## pixels16_l2_ ## MMX(dst, halfH, halfHV, \
|
ff_ ## OPNAME ## pixels16_l2_ ## MMX(ARG(dst, halfH, halfHV, \
|
||||||
stride, 16, 16); \
|
stride, 16, 16)); \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static void OPNAME ## qpel16_mc31_ ## MMX(uint8_t *dst, \
|
static void OPNAME ## qpel16_mc31_ ## MMX(uint8_t *dst, \
|
||||||
@@ -373,8 +373,8 @@ static void OPNAME ## qpel16_mc31_ ## MMX(uint8_t *dst, \
|
|||||||
stride, 17); \
|
stride, 17); \
|
||||||
ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH, \
|
ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH, \
|
||||||
16, 16); \
|
16, 16); \
|
||||||
ff_ ## OPNAME ## pixels16_l2_ ## MMX(dst, halfH, halfHV, \
|
ff_ ## OPNAME ## pixels16_l2_ ## MMX(ARG(dst, halfH, halfHV, \
|
||||||
stride, 16, 16); \
|
stride, 16, 16)); \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static void OPNAME ## qpel16_mc13_ ## MMX(uint8_t *dst, \
|
static void OPNAME ## qpel16_mc13_ ## MMX(uint8_t *dst, \
|
||||||
@@ -390,8 +390,8 @@ static void OPNAME ## qpel16_mc13_ ## MMX(uint8_t *dst, \
|
|||||||
stride, 17); \
|
stride, 17); \
|
||||||
ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH, \
|
ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH, \
|
||||||
16, 16); \
|
16, 16); \
|
||||||
ff_ ## OPNAME ## pixels16_l2_ ## MMX(dst, halfH + 16, halfHV, \
|
ff_ ## OPNAME ## pixels16_l2_ ## MMX(ARG(dst, halfH + 16, halfHV, \
|
||||||
stride, 16, 16); \
|
stride, 16, 16)); \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static void OPNAME ## qpel16_mc33_ ## MMX(uint8_t *dst, \
|
static void OPNAME ## qpel16_mc33_ ## MMX(uint8_t *dst, \
|
||||||
@@ -407,8 +407,8 @@ static void OPNAME ## qpel16_mc33_ ## MMX(uint8_t *dst, \
|
|||||||
stride, 17); \
|
stride, 17); \
|
||||||
ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH, \
|
ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH, \
|
||||||
16, 16); \
|
16, 16); \
|
||||||
ff_ ## OPNAME ## pixels16_l2_ ## MMX(dst, halfH + 16, halfHV, \
|
ff_ ## OPNAME ## pixels16_l2_ ## MMX(ARG(dst, halfH + 16, halfHV, \
|
||||||
stride, 16, 16); \
|
stride, 16, 16)); \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static void OPNAME ## qpel16_mc21_ ## MMX(uint8_t *dst, \
|
static void OPNAME ## qpel16_mc21_ ## MMX(uint8_t *dst, \
|
||||||
@@ -422,8 +422,8 @@ static void OPNAME ## qpel16_mc21_ ## MMX(uint8_t *dst, \
|
|||||||
stride, 17); \
|
stride, 17); \
|
||||||
ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH, \
|
ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH, \
|
||||||
16, 16); \
|
16, 16); \
|
||||||
ff_ ## OPNAME ## pixels16_l2_ ## MMX(dst, halfH, halfHV, \
|
ff_ ## OPNAME ## pixels16_l2_ ## MMX(ARG(dst, halfH, halfHV, \
|
||||||
stride, 16, 16); \
|
stride, 16, 16)); \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static void OPNAME ## qpel16_mc23_ ## MMX(uint8_t *dst, \
|
static void OPNAME ## qpel16_mc23_ ## MMX(uint8_t *dst, \
|
||||||
@@ -437,8 +437,8 @@ static void OPNAME ## qpel16_mc23_ ## MMX(uint8_t *dst, \
|
|||||||
stride, 17); \
|
stride, 17); \
|
||||||
ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH, \
|
ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH, \
|
||||||
16, 16); \
|
16, 16); \
|
||||||
ff_ ## OPNAME ## pixels16_l2_ ## MMX(dst, halfH + 16, halfHV, \
|
ff_ ## OPNAME ## pixels16_l2_ ## MMX(ARG(dst, halfH + 16, halfHV, \
|
||||||
stride, 16, 16); \
|
stride, 16, 16)); \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static void OPNAME ## qpel16_mc12_ ## MMX(uint8_t *dst, \
|
static void OPNAME ## qpel16_mc12_ ## MMX(uint8_t *dst, \
|
||||||
@@ -481,9 +481,13 @@ static void OPNAME ## qpel16_mc22_ ## MMX(uint8_t *dst, \
|
|||||||
stride, 16); \
|
stride, 16); \
|
||||||
}
|
}
|
||||||
|
|
||||||
QPEL_OP(put_, _, mmxext)
|
#define PASSTHROUGH(...) __VA_ARGS__
|
||||||
QPEL_OP(avg_, _, mmxext)
|
#define STRIP_HEIGHT(dst, src1, src2, dststride, srcstride, height) \
|
||||||
QPEL_OP(put_no_rnd_, _no_rnd_, mmxext)
|
(dst), (src1), (src2), (dststride), (srcstride)
|
||||||
|
|
||||||
|
QPEL_OP(put_, _, mmxext, PASSTHROUGH)
|
||||||
|
QPEL_OP(avg_, _, mmxext, STRIP_HEIGHT)
|
||||||
|
QPEL_OP(put_no_rnd_, _no_rnd_, mmxext, PASSTHROUGH)
|
||||||
|
|
||||||
#define MC00(OPNAME, SIZE, EXT) \
|
#define MC00(OPNAME, SIZE, EXT) \
|
||||||
static void OPNAME ## _qpel ## SIZE ## _mc00_ ## EXT(uint8_t *dst, \
|
static void OPNAME ## _qpel ## SIZE ## _mc00_ ## EXT(uint8_t *dst, \
|
||||||
|
Reference in New Issue
Block a user