Mercurial > libavcodec.hg
comparison x86/h264dsp_mmx.c @ 12438:33ecda76b2f2 libavcodec
Split intra prediction initialization (i.e. assigning of function pointers)
into its own file, it doesn't belong in h264dsp_mmx.c (much less so in
dsputil_mmx.c).
author | rbultje |
---|---|
date | Mon, 30 Aug 2010 16:34:13 +0000 |
parents | b242eb86ea9a |
children | 3941687b4fa9 |
comparison
equal
deleted
inserted
replaced
12437:b242eb86ea9a | 12438:33ecda76b2f2 |
---|---|
2215 int offset); | 2215 int offset); |
2216 | 2216 |
2217 void ff_h264_biweight_16x16_ssse3(uint8_t *dst, uint8_t *src, int stride, | 2217 void ff_h264_biweight_16x16_ssse3(uint8_t *dst, uint8_t *src, int stride, |
2218 int log2_denom, int weightd, int weights, | 2218 int log2_denom, int weightd, int weights, |
2219 int offset); | 2219 int offset); |
2220 | |
2221 void ff_pred16x16_vertical_mmx (uint8_t *src, int stride); | |
2222 void ff_pred16x16_vertical_sse (uint8_t *src, int stride); | |
2223 void ff_pred16x16_horizontal_mmx (uint8_t *src, int stride); | |
2224 void ff_pred16x16_horizontal_mmxext(uint8_t *src, int stride); | |
2225 void ff_pred16x16_horizontal_ssse3 (uint8_t *src, int stride); | |
2226 void ff_pred16x16_dc_mmxext (uint8_t *src, int stride); | |
2227 void ff_pred16x16_dc_sse2 (uint8_t *src, int stride); | |
2228 void ff_pred16x16_dc_ssse3 (uint8_t *src, int stride); | |
2229 void ff_pred16x16_tm_vp8_mmx (uint8_t *src, int stride); | |
2230 void ff_pred16x16_tm_vp8_mmxext (uint8_t *src, int stride); | |
2231 void ff_pred16x16_tm_vp8_sse2 (uint8_t *src, int stride); | |
2232 void ff_pred8x8_dc_rv40_mmxext (uint8_t *src, int stride); | |
2233 void ff_pred8x8_vertical_mmx (uint8_t *src, int stride); | |
2234 void ff_pred8x8_horizontal_mmx (uint8_t *src, int stride); | |
2235 void ff_pred8x8_horizontal_mmxext (uint8_t *src, int stride); | |
2236 void ff_pred8x8_horizontal_ssse3 (uint8_t *src, int stride); | |
2237 void ff_pred8x8_tm_vp8_mmx (uint8_t *src, int stride); | |
2238 void ff_pred8x8_tm_vp8_mmxext (uint8_t *src, int stride); | |
2239 void ff_pred8x8_tm_vp8_sse2 (uint8_t *src, int stride); | |
2240 void ff_pred8x8_tm_vp8_ssse3 (uint8_t *src, int stride); | |
2241 void ff_pred4x4_dc_mmxext (uint8_t *src, const uint8_t *topright, int stride); | |
2242 void ff_pred4x4_tm_vp8_mmx (uint8_t *src, const uint8_t *topright, int stride); | |
2243 void ff_pred4x4_tm_vp8_mmxext (uint8_t *src, const uint8_t *topright, int stride); | |
2244 void ff_pred4x4_tm_vp8_ssse3 (uint8_t *src, const uint8_t *topright, int stride); | |
2245 void ff_pred4x4_vertical_vp8_mmxext(uint8_t *src, const uint8_t *topright, int stride); | |
2246 | |
2247 #if CONFIG_H264PRED | |
2248 void ff_h264_pred_init_x86(H264PredContext *h, int codec_id) | |
2249 { | |
2250 int mm_flags = mm_support(); | |
2251 | |
2252 #if HAVE_YASM | |
2253 if (mm_flags & FF_MM_MMX) { | |
2254 h->pred16x16[VERT_PRED8x8] = ff_pred16x16_vertical_mmx; | |
2255 h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_mmx; | |
2256 h->pred8x8 [VERT_PRED8x8] = ff_pred8x8_vertical_mmx; | |
2257 h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_mmx; | |
2258 if (codec_id == CODEC_ID_VP8) { | |
2259 h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_tm_vp8_mmx; | |
2260 h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_mmx; | |
2261 h->pred4x4 [TM_VP8_PRED ] = ff_pred4x4_tm_vp8_mmx; | |
2262 } | |
2263 } | |
2264 | |
2265 if (mm_flags & FF_MM_MMX2) { | |
2266 h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_mmxext; | |
2267 h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_mmxext; | |
2268 h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_mmxext; | |
2269 h->pred4x4 [DC_PRED ] = ff_pred4x4_dc_mmxext; | |
2270 if (codec_id == CODEC_ID_VP8) { | |
2271 h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_tm_vp8_mmxext; | |
2272 h->pred8x8 [DC_PRED8x8 ] = ff_pred8x8_dc_rv40_mmxext; | |
2273 h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_mmxext; | |
2274 h->pred4x4 [TM_VP8_PRED ] = ff_pred4x4_tm_vp8_mmxext; | |
2275 h->pred4x4 [VERT_PRED ] = ff_pred4x4_vertical_vp8_mmxext; | |
2276 } | |
2277 } | |
2278 | |
2279 if (mm_flags & FF_MM_SSE) { | |
2280 h->pred16x16[VERT_PRED8x8] = ff_pred16x16_vertical_sse; | |
2281 } | |
2282 | |
2283 if (mm_flags & FF_MM_SSE2) { | |
2284 h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_sse2; | |
2285 if (codec_id == CODEC_ID_VP8) { | |
2286 h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_tm_vp8_sse2; | |
2287 h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_sse2; | |
2288 } | |
2289 } | |
2290 | |
2291 if (mm_flags & FF_MM_SSSE3) { | |
2292 h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_ssse3; | |
2293 h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_ssse3; | |
2294 h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_ssse3; | |
2295 if (codec_id == CODEC_ID_VP8) { | |
2296 h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_ssse3; | |
2297 h->pred4x4 [TM_VP8_PRED ] = ff_pred4x4_tm_vp8_ssse3; | |
2298 } | |
2299 } | |
2300 #endif | |
2301 } | |
2302 #endif |