MCPcopy Create free account
hub / github.com/cisco/openh264 / InitVaaFuncs

Method InitVaaFuncs

codec/processing/src/vaacalc/vaacalculation.cpp:53–118  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

51}
52
53void CVAACalculation::InitVaaFuncs (SVaaFuncs& sVaaFuncs, int32_t iCpuFlag) {
54 sVaaFuncs.pfVAACalcSad = VAACalcSad_c;
55 sVaaFuncs.pfVAACalcSadBgd = VAACalcSadBgd_c;
56 sVaaFuncs.pfVAACalcSadSsd = VAACalcSadSsd_c;
57 sVaaFuncs.pfVAACalcSadSsdBgd = VAACalcSadSsdBgd_c;
58 sVaaFuncs.pfVAACalcSadVar = VAACalcSadVar_c;
59#ifdef X86_ASM
60 if ((iCpuFlag & WELS_CPU_SSE2) == WELS_CPU_SSE2) {
61 sVaaFuncs.pfVAACalcSad = VAACalcSad_sse2;
62 sVaaFuncs.pfVAACalcSadBgd = VAACalcSadBgd_sse2;
63 sVaaFuncs.pfVAACalcSadSsd = VAACalcSadSsd_sse2;
64 sVaaFuncs.pfVAACalcSadSsdBgd = VAACalcSadSsdBgd_sse2;
65 sVaaFuncs.pfVAACalcSadVar = VAACalcSadVar_sse2;
66 }
67#ifdef HAVE_AVX2
68 if (iCpuFlag & WELS_CPU_AVX2) {
69 sVaaFuncs.pfVAACalcSad = VAACalcSad_avx2;
70 sVaaFuncs.pfVAACalcSadBgd = VAACalcSadBgd_avx2;
71 sVaaFuncs.pfVAACalcSadSsd = VAACalcSadSsd_avx2;
72 sVaaFuncs.pfVAACalcSadSsdBgd = VAACalcSadSsdBgd_avx2;
73 sVaaFuncs.pfVAACalcSadVar = VAACalcSadVar_avx2;
74 }
75#endif
76#endif//X86_ASM
77#ifdef HAVE_NEON
78 if ((iCpuFlag & WELS_CPU_NEON) == WELS_CPU_NEON) {
79 sVaaFuncs.pfVAACalcSad = VAACalcSad_neon;
80 sVaaFuncs.pfVAACalcSadBgd = VAACalcSadBgd_neon;
81 sVaaFuncs.pfVAACalcSadSsd = VAACalcSadSsd_neon;
82 sVaaFuncs.pfVAACalcSadSsdBgd = VAACalcSadSsdBgd_neon;
83 sVaaFuncs.pfVAACalcSadVar = VAACalcSadVar_neon;
84 }
85#endif//HAVE_NEON
86
87#ifdef HAVE_NEON_AARCH64
88 if ((iCpuFlag & WELS_CPU_NEON) == WELS_CPU_NEON) {
89 sVaaFuncs.pfVAACalcSad = VAACalcSad_AArch64_neon;
90 sVaaFuncs.pfVAACalcSadBgd = VAACalcSadBgd_AArch64_neon;
91 sVaaFuncs.pfVAACalcSadSsd = VAACalcSadSsd_AArch64_neon;
92 sVaaFuncs.pfVAACalcSadSsdBgd = VAACalcSadSsdBgd_AArch64_neon;
93 sVaaFuncs.pfVAACalcSadVar = VAACalcSadVar_AArch64_neon;
94 }
95#endif//HAVE_NEON_AARCH64
96
97#ifdef HAVE_MMI
98 if ((iCpuFlag & WELS_CPU_MMI) == WELS_CPU_MMI) {
99 sVaaFuncs.pfVAACalcSad = VAACalcSad_mmi;
100 sVaaFuncs.pfVAACalcSadBgd = VAACalcSadBgd_mmi;
101 sVaaFuncs.pfVAACalcSadSsd = VAACalcSadSsd_mmi;
102 sVaaFuncs.pfVAACalcSadSsdBgd = VAACalcSadSsdBgd_mmi;
103 sVaaFuncs.pfVAACalcSadVar = VAACalcSadVar_mmi;
104 }
105#endif//HAVE_MMI
106
107#ifdef HAVE_LSX
108 if ((iCpuFlag & WELS_CPU_LSX) == WELS_CPU_LSX) {
109 sVaaFuncs.pfVAACalcSad = VAACalcSad_lsx;
110 sVaaFuncs.pfVAACalcSadBgd = VAACalcSadBgd_lsx;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected