33
extern void ff_put_vp8_epel4_h4_mmxext(uint8_t *dst, ptrdiff_t dststride,
34
uint8_t *src, ptrdiff_t srcstride,
35
int height, int mx, int my);
36
extern void ff_put_vp8_epel4_h6_mmxext(uint8_t *dst, ptrdiff_t dststride,
37
uint8_t *src, ptrdiff_t srcstride,
38
int height, int mx, int my);
39
extern void ff_put_vp8_epel4_v4_mmxext(uint8_t *dst, ptrdiff_t dststride,
40
uint8_t *src, ptrdiff_t srcstride,
41
int height, int mx, int my);
42
extern void ff_put_vp8_epel4_v6_mmxext(uint8_t *dst, ptrdiff_t dststride,
43
uint8_t *src, ptrdiff_t srcstride,
44
int height, int mx, int my);
46
extern void ff_put_vp8_epel8_h4_sse2 (uint8_t *dst, ptrdiff_t dststride,
47
uint8_t *src, ptrdiff_t srcstride,
48
int height, int mx, int my);
49
extern void ff_put_vp8_epel8_h6_sse2 (uint8_t *dst, ptrdiff_t dststride,
50
uint8_t *src, ptrdiff_t srcstride,
51
int height, int mx, int my);
52
extern void ff_put_vp8_epel8_v4_sse2 (uint8_t *dst, ptrdiff_t dststride,
53
uint8_t *src, ptrdiff_t srcstride,
54
int height, int mx, int my);
55
extern void ff_put_vp8_epel8_v6_sse2 (uint8_t *dst, ptrdiff_t dststride,
56
uint8_t *src, ptrdiff_t srcstride,
57
int height, int mx, int my);
59
extern void ff_put_vp8_epel4_h4_ssse3 (uint8_t *dst, ptrdiff_t dststride,
60
uint8_t *src, ptrdiff_t srcstride,
61
int height, int mx, int my);
62
extern void ff_put_vp8_epel4_h6_ssse3 (uint8_t *dst, ptrdiff_t dststride,
63
uint8_t *src, ptrdiff_t srcstride,
64
int height, int mx, int my);
65
extern void ff_put_vp8_epel4_v4_ssse3 (uint8_t *dst, ptrdiff_t dststride,
66
uint8_t *src, ptrdiff_t srcstride,
67
int height, int mx, int my);
68
extern void ff_put_vp8_epel4_v6_ssse3 (uint8_t *dst, ptrdiff_t dststride,
69
uint8_t *src, ptrdiff_t srcstride,
70
int height, int mx, int my);
71
extern void ff_put_vp8_epel8_h4_ssse3 (uint8_t *dst, ptrdiff_t dststride,
72
uint8_t *src, ptrdiff_t srcstride,
73
int height, int mx, int my);
74
extern void ff_put_vp8_epel8_h6_ssse3 (uint8_t *dst, ptrdiff_t dststride,
75
uint8_t *src, ptrdiff_t srcstride,
76
int height, int mx, int my);
77
extern void ff_put_vp8_epel8_v4_ssse3 (uint8_t *dst, ptrdiff_t dststride,
78
uint8_t *src, ptrdiff_t srcstride,
79
int height, int mx, int my);
80
extern void ff_put_vp8_epel8_v6_ssse3 (uint8_t *dst, ptrdiff_t dststride,
81
uint8_t *src, ptrdiff_t srcstride,
82
int height, int mx, int my);
84
extern void ff_put_vp8_bilinear4_h_mmxext(uint8_t *dst, ptrdiff_t dststride,
85
uint8_t *src, ptrdiff_t srcstride,
86
int height, int mx, int my);
87
extern void ff_put_vp8_bilinear8_h_sse2 (uint8_t *dst, ptrdiff_t dststride,
88
uint8_t *src, ptrdiff_t srcstride,
89
int height, int mx, int my);
90
extern void ff_put_vp8_bilinear4_h_ssse3 (uint8_t *dst, ptrdiff_t dststride,
91
uint8_t *src, ptrdiff_t srcstride,
92
int height, int mx, int my);
93
extern void ff_put_vp8_bilinear8_h_ssse3 (uint8_t *dst, ptrdiff_t dststride,
94
uint8_t *src, ptrdiff_t srcstride,
95
int height, int mx, int my);
97
extern void ff_put_vp8_bilinear4_v_mmxext(uint8_t *dst, ptrdiff_t dststride,
98
uint8_t *src, ptrdiff_t srcstride,
99
int height, int mx, int my);
100
extern void ff_put_vp8_bilinear8_v_sse2 (uint8_t *dst, ptrdiff_t dststride,
101
uint8_t *src, ptrdiff_t srcstride,
102
int height, int mx, int my);
103
extern void ff_put_vp8_bilinear4_v_ssse3 (uint8_t *dst, ptrdiff_t dststride,
104
uint8_t *src, ptrdiff_t srcstride,
105
int height, int mx, int my);
106
extern void ff_put_vp8_bilinear8_v_ssse3 (uint8_t *dst, ptrdiff_t dststride,
107
uint8_t *src, ptrdiff_t srcstride,
108
int height, int mx, int my);
111
extern void ff_put_vp8_pixels8_mmx (uint8_t *dst, ptrdiff_t dststride,
112
uint8_t *src, ptrdiff_t srcstride,
113
int height, int mx, int my);
114
extern void ff_put_vp8_pixels16_mmx(uint8_t *dst, ptrdiff_t dststride,
115
uint8_t *src, ptrdiff_t srcstride,
116
int height, int mx, int my);
117
extern void ff_put_vp8_pixels16_sse(uint8_t *dst, ptrdiff_t dststride,
118
uint8_t *src, ptrdiff_t srcstride,
119
int height, int mx, int my);
35
void ff_put_vp8_epel4_h4_mmxext(uint8_t *dst, ptrdiff_t dststride,
36
uint8_t *src, ptrdiff_t srcstride,
37
int height, int mx, int my);
38
void ff_put_vp8_epel4_h6_mmxext(uint8_t *dst, ptrdiff_t dststride,
39
uint8_t *src, ptrdiff_t srcstride,
40
int height, int mx, int my);
41
void ff_put_vp8_epel4_v4_mmxext(uint8_t *dst, ptrdiff_t dststride,
42
uint8_t *src, ptrdiff_t srcstride,
43
int height, int mx, int my);
44
void ff_put_vp8_epel4_v6_mmxext(uint8_t *dst, ptrdiff_t dststride,
45
uint8_t *src, ptrdiff_t srcstride,
46
int height, int mx, int my);
48
void ff_put_vp8_epel8_h4_sse2 (uint8_t *dst, ptrdiff_t dststride,
49
uint8_t *src, ptrdiff_t srcstride,
50
int height, int mx, int my);
51
void ff_put_vp8_epel8_h6_sse2 (uint8_t *dst, ptrdiff_t dststride,
52
uint8_t *src, ptrdiff_t srcstride,
53
int height, int mx, int my);
54
void ff_put_vp8_epel8_v4_sse2 (uint8_t *dst, ptrdiff_t dststride,
55
uint8_t *src, ptrdiff_t srcstride,
56
int height, int mx, int my);
57
void ff_put_vp8_epel8_v6_sse2 (uint8_t *dst, ptrdiff_t dststride,
58
uint8_t *src, ptrdiff_t srcstride,
59
int height, int mx, int my);
61
void ff_put_vp8_epel4_h4_ssse3 (uint8_t *dst, ptrdiff_t dststride,
62
uint8_t *src, ptrdiff_t srcstride,
63
int height, int mx, int my);
64
void ff_put_vp8_epel4_h6_ssse3 (uint8_t *dst, ptrdiff_t dststride,
65
uint8_t *src, ptrdiff_t srcstride,
66
int height, int mx, int my);
67
void ff_put_vp8_epel4_v4_ssse3 (uint8_t *dst, ptrdiff_t dststride,
68
uint8_t *src, ptrdiff_t srcstride,
69
int height, int mx, int my);
70
void ff_put_vp8_epel4_v6_ssse3 (uint8_t *dst, ptrdiff_t dststride,
71
uint8_t *src, ptrdiff_t srcstride,
72
int height, int mx, int my);
73
void ff_put_vp8_epel8_h4_ssse3 (uint8_t *dst, ptrdiff_t dststride,
74
uint8_t *src, ptrdiff_t srcstride,
75
int height, int mx, int my);
76
void ff_put_vp8_epel8_h6_ssse3 (uint8_t *dst, ptrdiff_t dststride,
77
uint8_t *src, ptrdiff_t srcstride,
78
int height, int mx, int my);
79
void ff_put_vp8_epel8_v4_ssse3 (uint8_t *dst, ptrdiff_t dststride,
80
uint8_t *src, ptrdiff_t srcstride,
81
int height, int mx, int my);
82
void ff_put_vp8_epel8_v6_ssse3 (uint8_t *dst, ptrdiff_t dststride,
83
uint8_t *src, ptrdiff_t srcstride,
84
int height, int mx, int my);
86
void ff_put_vp8_bilinear4_h_mmxext(uint8_t *dst, ptrdiff_t dststride,
87
uint8_t *src, ptrdiff_t srcstride,
88
int height, int mx, int my);
89
void ff_put_vp8_bilinear8_h_sse2 (uint8_t *dst, ptrdiff_t dststride,
90
uint8_t *src, ptrdiff_t srcstride,
91
int height, int mx, int my);
92
void ff_put_vp8_bilinear4_h_ssse3 (uint8_t *dst, ptrdiff_t dststride,
93
uint8_t *src, ptrdiff_t srcstride,
94
int height, int mx, int my);
95
void ff_put_vp8_bilinear8_h_ssse3 (uint8_t *dst, ptrdiff_t dststride,
96
uint8_t *src, ptrdiff_t srcstride,
97
int height, int mx, int my);
99
void ff_put_vp8_bilinear4_v_mmxext(uint8_t *dst, ptrdiff_t dststride,
100
uint8_t *src, ptrdiff_t srcstride,
101
int height, int mx, int my);
102
void ff_put_vp8_bilinear8_v_sse2 (uint8_t *dst, ptrdiff_t dststride,
103
uint8_t *src, ptrdiff_t srcstride,
104
int height, int mx, int my);
105
void ff_put_vp8_bilinear4_v_ssse3 (uint8_t *dst, ptrdiff_t dststride,
106
uint8_t *src, ptrdiff_t srcstride,
107
int height, int mx, int my);
108
void ff_put_vp8_bilinear8_v_ssse3 (uint8_t *dst, ptrdiff_t dststride,
109
uint8_t *src, ptrdiff_t srcstride,
110
int height, int mx, int my);
113
void ff_put_vp8_pixels8_mmx (uint8_t *dst, ptrdiff_t dststride,
114
uint8_t *src, ptrdiff_t srcstride,
115
int height, int mx, int my);
116
void ff_put_vp8_pixels16_mmx(uint8_t *dst, ptrdiff_t dststride,
117
uint8_t *src, ptrdiff_t srcstride,
118
int height, int mx, int my);
119
void ff_put_vp8_pixels16_sse(uint8_t *dst, ptrdiff_t dststride,
120
uint8_t *src, ptrdiff_t srcstride,
121
int height, int mx, int my);
121
123
#define TAP_W16(OPT, FILTERTYPE, TAPTYPE) \
122
124
static void ff_put_vp8_ ## FILTERTYPE ## 16_ ## TAPTYPE ## _ ## OPT( \
230
232
HVBILIN(ssse3, 8, 8, 16)
231
233
HVBILIN(ssse3, 8, 16, 16)
233
extern void ff_vp8_idct_dc_add_mmx(uint8_t *dst, DCTELEM block[16],
235
extern void ff_vp8_idct_dc_add_sse4(uint8_t *dst, DCTELEM block[16],
237
extern void ff_vp8_idct_dc_add4y_mmx(uint8_t *dst, DCTELEM block[4][16],
239
extern void ff_vp8_idct_dc_add4y_sse2(uint8_t *dst, DCTELEM block[4][16],
241
extern void ff_vp8_idct_dc_add4uv_mmx(uint8_t *dst, DCTELEM block[2][16],
243
extern void ff_vp8_luma_dc_wht_mmx(DCTELEM block[4][4][16], DCTELEM dc[16]);
244
extern void ff_vp8_luma_dc_wht_sse(DCTELEM block[4][4][16], DCTELEM dc[16]);
245
extern void ff_vp8_idct_add_mmx(uint8_t *dst, DCTELEM block[16],
247
extern void ff_vp8_idct_add_sse(uint8_t *dst, DCTELEM block[16],
235
void ff_vp8_idct_dc_add_mmx(uint8_t *dst, int16_t block[16],
237
void ff_vp8_idct_dc_add_sse4(uint8_t *dst, int16_t block[16],
239
void ff_vp8_idct_dc_add4y_mmx(uint8_t *dst, int16_t block[4][16],
241
void ff_vp8_idct_dc_add4y_sse2(uint8_t *dst, int16_t block[4][16],
243
void ff_vp8_idct_dc_add4uv_mmx(uint8_t *dst, int16_t block[2][16],
245
void ff_vp8_luma_dc_wht_mmx(int16_t block[4][4][16], int16_t dc[16]);
246
void ff_vp8_luma_dc_wht_sse(int16_t block[4][4][16], int16_t dc[16]);
247
void ff_vp8_idct_add_mmx(uint8_t *dst, int16_t block[16], ptrdiff_t stride);
248
void ff_vp8_idct_add_sse(uint8_t *dst, int16_t block[16], ptrdiff_t stride);
250
#define DECLARE_LOOP_FILTER(NAME)\
251
extern void ff_vp8_v_loop_filter_simple_ ## NAME(uint8_t *dst, \
254
extern void ff_vp8_h_loop_filter_simple_ ## NAME(uint8_t *dst, \
257
extern void ff_vp8_v_loop_filter16y_inner_ ## NAME (uint8_t *dst, \
259
int e, int i, int hvt);\
260
extern void ff_vp8_h_loop_filter16y_inner_ ## NAME (uint8_t *dst, \
262
int e, int i, int hvt);\
263
extern void ff_vp8_v_loop_filter8uv_inner_ ## NAME (uint8_t *dstU, \
266
int e, int i, int hvt);\
267
extern void ff_vp8_h_loop_filter8uv_inner_ ## NAME (uint8_t *dstU, \
270
int e, int i, int hvt);\
271
extern void ff_vp8_v_loop_filter16y_mbedge_ ## NAME(uint8_t *dst, \
273
int e, int i, int hvt);\
274
extern void ff_vp8_h_loop_filter16y_mbedge_ ## NAME(uint8_t *dst, \
276
int e, int i, int hvt);\
277
extern void ff_vp8_v_loop_filter8uv_mbedge_ ## NAME(uint8_t *dstU, \
280
int e, int i, int hvt);\
281
extern void ff_vp8_h_loop_filter8uv_mbedge_ ## NAME(uint8_t *dstU, \
284
int e, int i, int hvt);
250
#define DECLARE_LOOP_FILTER(NAME) \
251
void ff_vp8_v_loop_filter_simple_ ## NAME(uint8_t *dst, \
254
void ff_vp8_h_loop_filter_simple_ ## NAME(uint8_t *dst, \
257
void ff_vp8_v_loop_filter16y_inner_ ## NAME (uint8_t *dst, \
259
int e, int i, int hvt); \
260
void ff_vp8_h_loop_filter16y_inner_ ## NAME (uint8_t *dst, \
262
int e, int i, int hvt); \
263
void ff_vp8_v_loop_filter8uv_inner_ ## NAME (uint8_t *dstU, \
266
int e, int i, int hvt); \
267
void ff_vp8_h_loop_filter8uv_inner_ ## NAME (uint8_t *dstU, \
270
int e, int i, int hvt); \
271
void ff_vp8_v_loop_filter16y_mbedge_ ## NAME(uint8_t *dst, \
273
int e, int i, int hvt); \
274
void ff_vp8_h_loop_filter16y_mbedge_ ## NAME(uint8_t *dst, \
276
int e, int i, int hvt); \
277
void ff_vp8_v_loop_filter8uv_mbedge_ ## NAME(uint8_t *dstU, \
280
int e, int i, int hvt); \
281
void ff_vp8_h_loop_filter8uv_mbedge_ ## NAME(uint8_t *dstU, \
284
int e, int i, int hvt);
286
286
DECLARE_LOOP_FILTER(mmx)
287
287
DECLARE_LOOP_FILTER(mmxext)