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 }