comparison x86/dsputilenc_mmx.c @ 12456:a5ddb39627fd libavcodec

Rename FF_MM_ symbols related to CPU features flags as AV_CPU_FLAG_ symbols, and move them from libavcodec/avcodec.h to libavutil/cpu.h.
author stefano
date Sat, 04 Sep 2010 09:59:08 +0000
parents 3fc4c625b6f3
children 9fef0a8ddd63
comparison
equal deleted inserted replaced
12455:14f85520cd02 12456:a5ddb39627fd
1350 1350
1351 void dsputilenc_init_mmx(DSPContext* c, AVCodecContext *avctx) 1351 void dsputilenc_init_mmx(DSPContext* c, AVCodecContext *avctx)
1352 { 1352 {
1353 int mm_flags = mm_support(); 1353 int mm_flags = mm_support();
1354 1354
1355 if (mm_flags & FF_MM_MMX) { 1355 if (mm_flags & AV_CPU_FLAG_MMX) {
1356 const int dct_algo = avctx->dct_algo; 1356 const int dct_algo = avctx->dct_algo;
1357 if(dct_algo==FF_DCT_AUTO || dct_algo==FF_DCT_MMX){ 1357 if(dct_algo==FF_DCT_AUTO || dct_algo==FF_DCT_MMX){
1358 if(mm_flags & FF_MM_SSE2){ 1358 if(mm_flags & AV_CPU_FLAG_SSE2){
1359 c->fdct = ff_fdct_sse2; 1359 c->fdct = ff_fdct_sse2;
1360 }else if(mm_flags & FF_MM_MMX2){ 1360 }else if(mm_flags & AV_CPU_FLAG_MMX2){
1361 c->fdct = ff_fdct_mmx2; 1361 c->fdct = ff_fdct_mmx2;
1362 }else{ 1362 }else{
1363 c->fdct = ff_fdct_mmx; 1363 c->fdct = ff_fdct_mmx;
1364 } 1364 }
1365 } 1365 }
1373 1373
1374 c->hadamard8_diff[0]= hadamard8_diff16_mmx; 1374 c->hadamard8_diff[0]= hadamard8_diff16_mmx;
1375 c->hadamard8_diff[1]= hadamard8_diff_mmx; 1375 c->hadamard8_diff[1]= hadamard8_diff_mmx;
1376 1376
1377 c->pix_norm1 = pix_norm1_mmx; 1377 c->pix_norm1 = pix_norm1_mmx;
1378 c->sse[0] = (mm_flags & FF_MM_SSE2) ? sse16_sse2 : sse16_mmx; 1378 c->sse[0] = (mm_flags & AV_CPU_FLAG_SSE2) ? sse16_sse2 : sse16_mmx;
1379 c->sse[1] = sse8_mmx; 1379 c->sse[1] = sse8_mmx;
1380 c->vsad[4]= vsad_intra16_mmx; 1380 c->vsad[4]= vsad_intra16_mmx;
1381 1381
1382 c->nsse[0] = nsse16_mmx; 1382 c->nsse[0] = nsse16_mmx;
1383 c->nsse[1] = nsse8_mmx; 1383 c->nsse[1] = nsse8_mmx;
1391 c->add_8x8basis= add_8x8basis_mmx; 1391 c->add_8x8basis= add_8x8basis_mmx;
1392 1392
1393 c->ssd_int8_vs_int16 = ssd_int8_vs_int16_mmx; 1393 c->ssd_int8_vs_int16 = ssd_int8_vs_int16_mmx;
1394 1394
1395 1395
1396 if (mm_flags & FF_MM_MMX2) { 1396 if (mm_flags & AV_CPU_FLAG_MMX2) {
1397 c->sum_abs_dctelem= sum_abs_dctelem_mmx2; 1397 c->sum_abs_dctelem= sum_abs_dctelem_mmx2;
1398 c->hadamard8_diff[0]= hadamard8_diff16_mmx2; 1398 c->hadamard8_diff[0]= hadamard8_diff16_mmx2;
1399 c->hadamard8_diff[1]= hadamard8_diff_mmx2; 1399 c->hadamard8_diff[1]= hadamard8_diff_mmx2;
1400 c->vsad[4]= vsad_intra16_mmx2; 1400 c->vsad[4]= vsad_intra16_mmx2;
1401 1401
1404 } 1404 }
1405 1405
1406 c->sub_hfyu_median_prediction= sub_hfyu_median_prediction_mmx2; 1406 c->sub_hfyu_median_prediction= sub_hfyu_median_prediction_mmx2;
1407 } 1407 }
1408 1408
1409 if(mm_flags & FF_MM_SSE2){ 1409 if(mm_flags & AV_CPU_FLAG_SSE2){
1410 c->get_pixels = get_pixels_sse2; 1410 c->get_pixels = get_pixels_sse2;
1411 c->sum_abs_dctelem= sum_abs_dctelem_sse2; 1411 c->sum_abs_dctelem= sum_abs_dctelem_sse2;
1412 c->hadamard8_diff[0]= hadamard8_diff16_sse2; 1412 c->hadamard8_diff[0]= hadamard8_diff16_sse2;
1413 c->hadamard8_diff[1]= hadamard8_diff_sse2; 1413 c->hadamard8_diff[1]= hadamard8_diff_sse2;
1414 } 1414 }
1415 1415
1416 if (CONFIG_LPC && mm_flags & (FF_MM_SSE2|FF_MM_SSE2SLOW)) { 1416 if (CONFIG_LPC && mm_flags & (AV_CPU_FLAG_SSE2|AV_CPU_FLAG_SSE2SLOW)) {
1417 c->lpc_compute_autocorr = ff_lpc_compute_autocorr_sse2; 1417 c->lpc_compute_autocorr = ff_lpc_compute_autocorr_sse2;
1418 } 1418 }
1419 1419
1420 #if HAVE_SSSE3 1420 #if HAVE_SSSE3
1421 if(mm_flags & FF_MM_SSSE3){ 1421 if(mm_flags & AV_CPU_FLAG_SSSE3){
1422 if(!(avctx->flags & CODEC_FLAG_BITEXACT)){ 1422 if(!(avctx->flags & CODEC_FLAG_BITEXACT)){
1423 c->try_8x8basis= try_8x8basis_ssse3; 1423 c->try_8x8basis= try_8x8basis_ssse3;
1424 } 1424 }
1425 c->add_8x8basis= add_8x8basis_ssse3; 1425 c->add_8x8basis= add_8x8basis_ssse3;
1426 c->sum_abs_dctelem= sum_abs_dctelem_ssse3; 1426 c->sum_abs_dctelem= sum_abs_dctelem_ssse3;
1427 c->hadamard8_diff[0]= hadamard8_diff16_ssse3; 1427 c->hadamard8_diff[0]= hadamard8_diff16_ssse3;
1428 c->hadamard8_diff[1]= hadamard8_diff_ssse3; 1428 c->hadamard8_diff[1]= hadamard8_diff_ssse3;
1429 } 1429 }
1430 #endif 1430 #endif
1431 1431
1432 if(mm_flags & FF_MM_3DNOW){ 1432 if(mm_flags & AV_CPU_FLAG_3DNOW){
1433 if(!(avctx->flags & CODEC_FLAG_BITEXACT)){ 1433 if(!(avctx->flags & CODEC_FLAG_BITEXACT)){
1434 c->try_8x8basis= try_8x8basis_3dnow; 1434 c->try_8x8basis= try_8x8basis_3dnow;
1435 } 1435 }
1436 c->add_8x8basis= add_8x8basis_3dnow; 1436 c->add_8x8basis= add_8x8basis_3dnow;
1437 } 1437 }