comparison postprocess.c @ 127:772a5a88c1bc libpostproc

configure: Add --enable-runtime-cpudetect
author ramiro
date Wed, 08 Apr 2009 20:26:18 +0000
parents 1500ae6cf66c
children 1afabe715e63
comparison
equal deleted inserted replaced
126:15664821cf1f 127:772a5a88c1bc
552 }*/ 552 }*/
553 } 553 }
554 554
555 //Note: we have C, MMX, MMX2, 3DNOW version there is no 3DNOW+MMX2 one 555 //Note: we have C, MMX, MMX2, 3DNOW version there is no 3DNOW+MMX2 one
556 //Plain C versions 556 //Plain C versions
557 #if !(HAVE_MMX || HAVE_ALTIVEC) || defined (RUNTIME_CPUDETECT) 557 #if !(HAVE_MMX || HAVE_ALTIVEC) || CONFIG_RUNTIME_CPUDETECT
558 #define COMPILE_C 558 #define COMPILE_C
559 #endif 559 #endif
560 560
561 #if HAVE_ALTIVEC 561 #if HAVE_ALTIVEC
562 #define COMPILE_ALTIVEC 562 #define COMPILE_ALTIVEC
563 #endif //HAVE_ALTIVEC 563 #endif //HAVE_ALTIVEC
564 564
565 #if ARCH_X86 565 #if ARCH_X86
566 566
567 #if (HAVE_MMX && !HAVE_AMD3DNOW && !HAVE_MMX2) || defined (RUNTIME_CPUDETECT) 567 #if (HAVE_MMX && !HAVE_AMD3DNOW && !HAVE_MMX2) || CONFIG_RUNTIME_CPUDETECT
568 #define COMPILE_MMX 568 #define COMPILE_MMX
569 #endif 569 #endif
570 570
571 #if HAVE_MMX2 || defined (RUNTIME_CPUDETECT) 571 #if HAVE_MMX2 || CONFIG_RUNTIME_CPUDETECT
572 #define COMPILE_MMX2 572 #define COMPILE_MMX2
573 #endif 573 #endif
574 574
575 #if (HAVE_AMD3DNOW && !HAVE_MMX2) || defined (RUNTIME_CPUDETECT) 575 #if (HAVE_AMD3DNOW && !HAVE_MMX2) || CONFIG_RUNTIME_CPUDETECT
576 #define COMPILE_3DNOW 576 #define COMPILE_3DNOW
577 #endif 577 #endif
578 #endif /* ARCH_X86 */ 578 #endif /* ARCH_X86 */
579 579
580 #undef HAVE_MMX 580 #undef HAVE_MMX
643 c->ppMode= *ppMode; //FIXME 643 c->ppMode= *ppMode; //FIXME
644 644
645 // Using ifs here as they are faster than function pointers although the 645 // Using ifs here as they are faster than function pointers although the
646 // difference would not be measurable here but it is much better because 646 // difference would not be measurable here but it is much better because
647 // someone might exchange the CPU whithout restarting MPlayer ;) 647 // someone might exchange the CPU whithout restarting MPlayer ;)
648 #ifdef RUNTIME_CPUDETECT 648 #if CONFIG_RUNTIME_CPUDETECT
649 #if ARCH_X86 649 #if ARCH_X86
650 // ordered per speed fastest first 650 // ordered per speed fastest first
651 if(c->cpuCaps & PP_CPU_CAPS_MMX2) 651 if(c->cpuCaps & PP_CPU_CAPS_MMX2)
652 postProcess_MMX2(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c); 652 postProcess_MMX2(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c);
653 else if(c->cpuCaps & PP_CPU_CAPS_3DNOW) 653 else if(c->cpuCaps & PP_CPU_CAPS_3DNOW)
662 postProcess_altivec(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c); 662 postProcess_altivec(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c);
663 else 663 else
664 #endif 664 #endif
665 postProcess_C(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c); 665 postProcess_C(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c);
666 #endif 666 #endif
667 #else //RUNTIME_CPUDETECT 667 #else //CONFIG_RUNTIME_CPUDETECT
668 #if HAVE_MMX2 668 #if HAVE_MMX2
669 postProcess_MMX2(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c); 669 postProcess_MMX2(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c);
670 #elif HAVE_AMD3DNOW 670 #elif HAVE_AMD3DNOW
671 postProcess_3DNow(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c); 671 postProcess_3DNow(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c);
672 #elif HAVE_MMX 672 #elif HAVE_MMX
674 #elif HAVE_ALTIVEC 674 #elif HAVE_ALTIVEC
675 postProcess_altivec(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c); 675 postProcess_altivec(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c);
676 #else 676 #else
677 postProcess_C(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c); 677 postProcess_C(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c);
678 #endif 678 #endif
679 #endif //!RUNTIME_CPUDETECT 679 #endif //!CONFIG_RUNTIME_CPUDETECT
680 } 680 }
681 681
682 //static void postProcess(uint8_t src[], int srcStride, uint8_t dst[], int dstStride, int width, int height, 682 //static void postProcess(uint8_t src[], int srcStride, uint8_t dst[], int dstStride, int width, int height,
683 // QP_STORE_T QPs[], int QPStride, int isColor, struct PPMode *ppMode); 683 // QP_STORE_T QPs[], int QPStride, int isColor, struct PPMode *ppMode);
684 684