Mercurial > libavcodec.hg
comparison x86/h264dsp_mmx.c @ 12003:3b761226ea35 libavcodec
Add mmx/mmxext/ssse3 4x4 TM intra pred functions for vp8
author | darkshikari |
---|---|
date | Mon, 28 Jun 2010 23:53:07 +0000 |
parents | 953a0949c789 |
children | 2002ea7c06f6 |
comparison
equal
deleted
inserted
replaced
12002:9c8584f68754 | 12003:3b761226ea35 |
---|---|
2343 void ff_pred8x8_tm_vp8_mmx (uint8_t *src, int stride); | 2343 void ff_pred8x8_tm_vp8_mmx (uint8_t *src, int stride); |
2344 void ff_pred8x8_tm_vp8_mmxext (uint8_t *src, int stride); | 2344 void ff_pred8x8_tm_vp8_mmxext (uint8_t *src, int stride); |
2345 void ff_pred8x8_tm_vp8_sse2 (uint8_t *src, int stride); | 2345 void ff_pred8x8_tm_vp8_sse2 (uint8_t *src, int stride); |
2346 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); | 2347 void ff_pred4x4_dc_mmxext (uint8_t *src, const uint8_t *topright, int stride); |
2348 void ff_pred4x4_tm_vp8_mmx (uint8_t *src, const uint8_t *topright, int stride); | |
2349 void ff_pred4x4_tm_vp8_mmxext (uint8_t *src, const uint8_t *topright, int stride); | |
2350 void ff_pred4x4_tm_vp8_ssse3 (uint8_t *src, const uint8_t *topright, int stride); | |
2348 | 2351 |
2349 #if CONFIG_H264DSP | 2352 #if CONFIG_H264DSP |
2350 void ff_h264_pred_init_x86(H264PredContext *h, int codec_id) | 2353 void ff_h264_pred_init_x86(H264PredContext *h, int codec_id) |
2351 { | 2354 { |
2352 #if HAVE_YASM | 2355 #if HAVE_YASM |
2356 h->pred8x8 [VERT_PRED8x8] = ff_pred8x8_vertical_mmx; | 2359 h->pred8x8 [VERT_PRED8x8] = ff_pred8x8_vertical_mmx; |
2357 h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_mmx; | 2360 h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_mmx; |
2358 if (codec_id == CODEC_ID_VP8) { | 2361 if (codec_id == CODEC_ID_VP8) { |
2359 h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_tm_vp8_mmx; | 2362 h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_tm_vp8_mmx; |
2360 h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_mmx; | 2363 h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_mmx; |
2364 h->pred4x4 [TM_VP8_PRED ] = ff_pred4x4_tm_vp8_mmx; | |
2361 } | 2365 } |
2362 } | 2366 } |
2363 | 2367 |
2364 if (mm_flags & FF_MM_MMX2) { | 2368 if (mm_flags & FF_MM_MMX2) { |
2365 h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_mmxext; | 2369 h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_mmxext; |
2368 h->pred4x4 [DC_PRED ] = ff_pred4x4_dc_mmxext; | 2372 h->pred4x4 [DC_PRED ] = ff_pred4x4_dc_mmxext; |
2369 if (codec_id == CODEC_ID_VP8) { | 2373 if (codec_id == CODEC_ID_VP8) { |
2370 h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_tm_vp8_mmxext; | 2374 h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_tm_vp8_mmxext; |
2371 h->pred8x8 [DC_PRED8x8 ] = ff_pred8x8_dc_rv40_mmxext; | 2375 h->pred8x8 [DC_PRED8x8 ] = ff_pred8x8_dc_rv40_mmxext; |
2372 h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_mmxext; | 2376 h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_mmxext; |
2377 h->pred4x4 [TM_VP8_PRED ] = ff_pred4x4_tm_vp8_mmxext; | |
2373 } | 2378 } |
2374 } | 2379 } |
2375 | 2380 |
2376 if (mm_flags & FF_MM_SSE) { | 2381 if (mm_flags & FF_MM_SSE) { |
2377 h->pred16x16[VERT_PRED8x8] = ff_pred16x16_vertical_sse; | 2382 h->pred16x16[VERT_PRED8x8] = ff_pred16x16_vertical_sse; |
2390 h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_ssse3; | 2395 h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_ssse3; |
2391 h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_ssse3; | 2396 h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_ssse3; |
2392 h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_ssse3; | 2397 h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_ssse3; |
2393 if (codec_id == CODEC_ID_VP8) { | 2398 if (codec_id == CODEC_ID_VP8) { |
2394 h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_ssse3; | 2399 h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_ssse3; |
2400 h->pred4x4 [TM_VP8_PRED ] = ff_pred4x4_tm_vp8_ssse3; | |
2395 } | 2401 } |
2396 } | 2402 } |
2397 #endif | 2403 #endif |
2398 } | 2404 } |
2399 #endif | 2405 #endif |