Mercurial > libavcodec.hg
comparison x86/h264dsp_mmx.c @ 12001:953a0949c789 libavcodec
Fix some intra pred MMX functions that used MMXEXT instructions
Also add predict_4x4_dc MMXEXT function for vp8/h264.
author | darkshikari |
---|---|
date | Mon, 28 Jun 2010 23:35:17 +0000 |
parents | c15e87b9767b |
children | 3b761226ea35 |
comparison
equal
deleted
inserted
replaced
12000:a717c1a93036 | 12001:953a0949c789 |
---|---|
2326 void ff_pred16x16_vertical_mmx (uint8_t *src, int stride); | 2326 void ff_pred16x16_vertical_mmx (uint8_t *src, int stride); |
2327 void ff_pred16x16_vertical_sse (uint8_t *src, int stride); | 2327 void ff_pred16x16_vertical_sse (uint8_t *src, int stride); |
2328 void ff_pred16x16_horizontal_mmx (uint8_t *src, int stride); | 2328 void ff_pred16x16_horizontal_mmx (uint8_t *src, int stride); |
2329 void ff_pred16x16_horizontal_mmxext(uint8_t *src, int stride); | 2329 void ff_pred16x16_horizontal_mmxext(uint8_t *src, int stride); |
2330 void ff_pred16x16_horizontal_ssse3 (uint8_t *src, int stride); | 2330 void ff_pred16x16_horizontal_ssse3 (uint8_t *src, int stride); |
2331 void ff_pred16x16_dc_mmx (uint8_t *src, int stride); | |
2332 void ff_pred16x16_dc_mmxext (uint8_t *src, int stride); | 2331 void ff_pred16x16_dc_mmxext (uint8_t *src, int stride); |
2333 void ff_pred16x16_dc_sse (uint8_t *src, int stride); | 2332 void ff_pred16x16_dc_sse (uint8_t *src, int stride); |
2334 void ff_pred16x16_dc_sse2 (uint8_t *src, int stride); | 2333 void ff_pred16x16_dc_sse2 (uint8_t *src, int stride); |
2335 void ff_pred16x16_dc_ssse3 (uint8_t *src, int stride); | 2334 void ff_pred16x16_dc_ssse3 (uint8_t *src, int stride); |
2336 void ff_pred16x16_tm_vp8_mmx (uint8_t *src, int stride); | 2335 void ff_pred16x16_tm_vp8_mmx (uint8_t *src, int stride); |
2337 void ff_pred16x16_tm_vp8_mmxext (uint8_t *src, int stride); | 2336 void ff_pred16x16_tm_vp8_mmxext (uint8_t *src, int stride); |
2338 void ff_pred16x16_tm_vp8_sse2 (uint8_t *src, int stride); | 2337 void ff_pred16x16_tm_vp8_sse2 (uint8_t *src, int stride); |
2339 void ff_pred8x8_dc_rv40_mmx (uint8_t *src, int stride); | |
2340 void ff_pred8x8_dc_rv40_mmxext (uint8_t *src, int stride); | 2338 void ff_pred8x8_dc_rv40_mmxext (uint8_t *src, int stride); |
2341 void ff_pred8x8_vertical_mmx (uint8_t *src, int stride); | 2339 void ff_pred8x8_vertical_mmx (uint8_t *src, int stride); |
2342 void ff_pred8x8_horizontal_mmx (uint8_t *src, int stride); | 2340 void ff_pred8x8_horizontal_mmx (uint8_t *src, int stride); |
2343 void ff_pred8x8_horizontal_mmxext (uint8_t *src, int stride); | 2341 void ff_pred8x8_horizontal_mmxext (uint8_t *src, int stride); |
2344 void ff_pred8x8_horizontal_ssse3 (uint8_t *src, int stride); | 2342 void ff_pred8x8_horizontal_ssse3 (uint8_t *src, int stride); |
2345 void ff_pred8x8_tm_vp8_mmx (uint8_t *src, int stride); | 2343 void ff_pred8x8_tm_vp8_mmx (uint8_t *src, int stride); |
2346 void ff_pred8x8_tm_vp8_mmxext (uint8_t *src, int stride); | 2344 void ff_pred8x8_tm_vp8_mmxext (uint8_t *src, int stride); |
2347 void ff_pred8x8_tm_vp8_sse2 (uint8_t *src, int stride); | 2345 void ff_pred8x8_tm_vp8_sse2 (uint8_t *src, int stride); |
2348 void ff_pred8x8_tm_vp8_ssse3 (uint8_t *src, int stride); | 2346 void ff_pred8x8_tm_vp8_ssse3 (uint8_t *src, int stride); |
2347 void ff_pred4x4_dc_mmxext (uint8_t *src, const uint8_t *topright, int stride); | |
2349 | 2348 |
2350 #if CONFIG_H264DSP | 2349 #if CONFIG_H264DSP |
2351 void ff_h264_pred_init_x86(H264PredContext *h, int codec_id) | 2350 void ff_h264_pred_init_x86(H264PredContext *h, int codec_id) |
2352 { | 2351 { |
2353 #if HAVE_YASM | 2352 #if HAVE_YASM |
2354 if (mm_flags & FF_MM_MMX) { | 2353 if (mm_flags & FF_MM_MMX) { |
2355 h->pred16x16[VERT_PRED8x8] = ff_pred16x16_vertical_mmx; | 2354 h->pred16x16[VERT_PRED8x8] = ff_pred16x16_vertical_mmx; |
2356 h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_mmx; | 2355 h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_mmx; |
2357 h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_mmx; | |
2358 h->pred8x8 [VERT_PRED8x8] = ff_pred8x8_vertical_mmx; | 2356 h->pred8x8 [VERT_PRED8x8] = ff_pred8x8_vertical_mmx; |
2359 h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_mmx; | 2357 h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_mmx; |
2360 if (codec_id == CODEC_ID_VP8) { | 2358 if (codec_id == CODEC_ID_VP8) { |
2361 h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_tm_vp8_mmx; | 2359 h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_tm_vp8_mmx; |
2362 h->pred8x8 [DC_PRED8x8 ] = ff_pred8x8_dc_rv40_mmx; | |
2363 h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_mmx; | 2360 h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_mmx; |
2364 } | 2361 } |
2365 } | 2362 } |
2366 | 2363 |
2367 if (mm_flags & FF_MM_MMX2) { | 2364 if (mm_flags & FF_MM_MMX2) { |
2368 h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_mmxext; | 2365 h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_mmxext; |
2369 h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_mmxext; | 2366 h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_mmxext; |
2370 h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_mmxext; | 2367 h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_mmxext; |
2368 h->pred4x4 [DC_PRED ] = ff_pred4x4_dc_mmxext; | |
2371 if (codec_id == CODEC_ID_VP8) { | 2369 if (codec_id == CODEC_ID_VP8) { |
2372 h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_tm_vp8_mmxext; | 2370 h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_tm_vp8_mmxext; |
2373 h->pred8x8 [DC_PRED8x8 ] = ff_pred8x8_dc_rv40_mmxext; | 2371 h->pred8x8 [DC_PRED8x8 ] = ff_pred8x8_dc_rv40_mmxext; |
2374 h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_mmxext; | 2372 h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_mmxext; |
2375 } | 2373 } |