Mercurial > libavcodec.hg
comparison x86/vp8dsp-init.c @ 11976:19374f2992bf libavcodec
Fix build without yasm
author | conrad |
---|---|
date | Sun, 27 Jun 2010 02:52:43 +0000 |
parents | c3afb5be0d9b |
children | a6d24fc1deb7 |
comparison
equal
deleted
inserted
replaced
11975:c3afb5be0d9b | 11976:19374f2992bf |
---|---|
94 ff_put_vp8_epel4_ ## TAPTYPE ## _ ## OPT(dst + 4, dststride, \ | 94 ff_put_vp8_epel4_ ## TAPTYPE ## _ ## OPT(dst + 4, dststride, \ |
95 src + 4, srcstride, \ | 95 src + 4, srcstride, \ |
96 height, mx, my); \ | 96 height, mx, my); \ |
97 } | 97 } |
98 | 98 |
99 #if HAVE_YASM | |
99 TAP_W8 (mmxext, h4) | 100 TAP_W8 (mmxext, h4) |
100 TAP_W8 (mmxext, h6) | 101 TAP_W8 (mmxext, h6) |
101 TAP_W16(mmxext, h6) | 102 TAP_W16(mmxext, h6) |
102 TAP_W8 (mmxext, v4) | 103 TAP_W8 (mmxext, v4) |
103 TAP_W8 (mmxext, v6) | 104 TAP_W8 (mmxext, v6) |
106 TAP_W16(sse2, h6) | 107 TAP_W16(sse2, h6) |
107 TAP_W16(sse2, v6) | 108 TAP_W16(sse2, v6) |
108 | 109 |
109 TAP_W16(ssse3, h6) | 110 TAP_W16(ssse3, h6) |
110 TAP_W16(ssse3, v6) | 111 TAP_W16(ssse3, v6) |
112 #endif | |
111 | 113 |
112 #define HVTAP(OPT, ALIGN, TAPNUMX, TAPNUMY, SIZE, MAXHEIGHT) \ | 114 #define HVTAP(OPT, ALIGN, TAPNUMX, TAPNUMY, SIZE, MAXHEIGHT) \ |
113 static void ff_put_vp8_epel ## SIZE ## _h ## TAPNUMX ## v ## TAPNUMY ## _ ## OPT \ | 115 static void ff_put_vp8_epel ## SIZE ## _h ## TAPNUMX ## v ## TAPNUMY ## _ ## OPT \ |
114 (uint8_t *dst, int dststride, \ | 116 (uint8_t *dst, int dststride, \ |
115 uint8_t *src, int srcstride, \ | 117 uint8_t *src, int srcstride, \ |
129 | 131 |
130 #define HVTAPMMX(x, y) \ | 132 #define HVTAPMMX(x, y) \ |
131 HVTAP(mmxext, 8, x, y, 4, 8) \ | 133 HVTAP(mmxext, 8, x, y, 4, 8) \ |
132 HVTAP(mmxext, 8, x, y, 8, 16) | 134 HVTAP(mmxext, 8, x, y, 8, 16) |
133 | 135 |
136 #if HAVE_YASM | |
134 HVTAPMMX(4, 4) | 137 HVTAPMMX(4, 4) |
135 HVTAPMMX(4, 6) | 138 HVTAPMMX(4, 6) |
136 HVTAPMMX(6, 4) | 139 HVTAPMMX(6, 4) |
137 HVTAPMMX(6, 6) | 140 HVTAPMMX(6, 6) |
138 HVTAP(mmxext, 8, 6, 6, 16, 16) | 141 HVTAP(mmxext, 8, 6, 6, 16, 16) |
142 #endif | |
139 | 143 |
140 #define HVTAPSSE2(x, y, w) \ | 144 #define HVTAPSSE2(x, y, w) \ |
141 HVTAP(sse2, 16, x, y, w, 16) \ | 145 HVTAP(sse2, 16, x, y, w, 16) \ |
142 HVTAP(ssse3, 16, x, y, w, 16) | 146 HVTAP(ssse3, 16, x, y, w, 16) |
143 | 147 |
148 #if HAVE_YASM | |
144 HVTAPSSE2(4, 4, 8) | 149 HVTAPSSE2(4, 4, 8) |
145 HVTAPSSE2(4, 6, 8) | 150 HVTAPSSE2(4, 6, 8) |
146 HVTAPSSE2(6, 4, 8) | 151 HVTAPSSE2(6, 4, 8) |
147 HVTAPSSE2(6, 6, 8) | 152 HVTAPSSE2(6, 6, 8) |
148 HVTAPSSE2(6, 6, 16) | 153 HVTAPSSE2(6, 6, 16) |
154 #endif | |
149 | 155 |
150 extern void ff_vp8_idct_dc_add_mmx(uint8_t *dst, DCTELEM block[16], int stride); | 156 extern void ff_vp8_idct_dc_add_mmx(uint8_t *dst, DCTELEM block[16], int stride); |
151 extern void ff_vp8_idct_dc_add_sse4(uint8_t *dst, DCTELEM block[16], int stride); | 157 extern void ff_vp8_idct_dc_add_sse4(uint8_t *dst, DCTELEM block[16], int stride); |
152 | 158 |
153 av_cold void ff_vp8dsp_init_x86(VP8DSPContext* c) | 159 av_cold void ff_vp8dsp_init_x86(VP8DSPContext* c) |
154 { | 160 { |
155 mm_flags = mm_support(); | 161 mm_flags = mm_support(); |
156 | 162 |
163 #if HAVE_YASM | |
157 if (mm_flags & FF_MM_MMX) { | 164 if (mm_flags & FF_MM_MMX) { |
158 c->vp8_idct_dc_add = ff_vp8_idct_dc_add_mmx; | 165 c->vp8_idct_dc_add = ff_vp8_idct_dc_add_mmx; |
159 } | 166 } |
160 | 167 |
161 /* note that 4-tap width=16 functions are missing because w=16 | 168 /* note that 4-tap width=16 functions are missing because w=16 |
211 } | 218 } |
212 | 219 |
213 if (mm_flags & FF_MM_SSE4) { | 220 if (mm_flags & FF_MM_SSE4) { |
214 c->vp8_idct_dc_add = ff_vp8_idct_dc_add_sse4; | 221 c->vp8_idct_dc_add = ff_vp8_idct_dc_add_sse4; |
215 } | 222 } |
216 } | 223 #endif |
224 } |