| Index: webrtc/modules/audio_coding/codecs/isac/fix/source/isacfix.c
|
| diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/source/isacfix.c b/webrtc/modules/audio_coding/codecs/isac/fix/source/isacfix.c
|
| index ba055ebdf53c9fcab9f2e1f3c80ad5c0c4794f28..9b61d60215a9f0f6595f4ec637f8b74f4e5f51e2 100644
|
| --- a/webrtc/modules/audio_coding/codecs/isac/fix/source/isacfix.c
|
| +++ b/webrtc/modules/audio_coding/codecs/isac/fix/source/isacfix.c
|
| @@ -241,6 +241,31 @@ static void WebRtcIsacfix_InitMIPS(void) {
|
| }
|
| #endif
|
|
|
| +static void InitFunctionPointers(void) {
|
| + WebRtcIsacfix_AutocorrFix = WebRtcIsacfix_AutocorrC;
|
| + WebRtcIsacfix_FilterMaLoopFix = WebRtcIsacfix_FilterMaLoopC;
|
| + WebRtcIsacfix_CalculateResidualEnergy =
|
| + WebRtcIsacfix_CalculateResidualEnergyC;
|
| + WebRtcIsacfix_AllpassFilter2FixDec16 = WebRtcIsacfix_AllpassFilter2FixDec16C;
|
| + WebRtcIsacfix_HighpassFilterFixDec32 = WebRtcIsacfix_HighpassFilterFixDec32C;
|
| + WebRtcIsacfix_Time2Spec = WebRtcIsacfix_Time2SpecC;
|
| + WebRtcIsacfix_Spec2Time = WebRtcIsacfix_Spec2TimeC;
|
| + WebRtcIsacfix_MatrixProduct1 = WebRtcIsacfix_MatrixProduct1C;
|
| + WebRtcIsacfix_MatrixProduct2 = WebRtcIsacfix_MatrixProduct2C;
|
| +
|
| +#ifdef WEBRTC_DETECT_NEON
|
| + if ((WebRtc_GetCPUFeaturesARM() & kCPUFeatureNEON) != 0) {
|
| + WebRtcIsacfix_InitNeon();
|
| + }
|
| +#elif defined(WEBRTC_HAS_NEON)
|
| + WebRtcIsacfix_InitNeon();
|
| +#endif
|
| +
|
| +#if defined(MIPS32_LE)
|
| + WebRtcIsacfix_InitMIPS();
|
| +#endif
|
| +}
|
| +
|
| /****************************************************************************
|
| * WebRtcIsacfix_EncoderInit(...)
|
| *
|
| @@ -317,29 +342,7 @@ int16_t WebRtcIsacfix_EncoderInit(ISACFIX_MainStruct *ISAC_main_inst,
|
| WebRtcIsacfix_InitPostFilterbank(&ISAC_inst->ISACenc_obj.interpolatorstr_obj);
|
| #endif
|
|
|
| - // Initiaze function pointers.
|
| - WebRtcIsacfix_AutocorrFix = WebRtcIsacfix_AutocorrC;
|
| - WebRtcIsacfix_FilterMaLoopFix = WebRtcIsacfix_FilterMaLoopC;
|
| - WebRtcIsacfix_CalculateResidualEnergy =
|
| - WebRtcIsacfix_CalculateResidualEnergyC;
|
| - WebRtcIsacfix_AllpassFilter2FixDec16 = WebRtcIsacfix_AllpassFilter2FixDec16C;
|
| - WebRtcIsacfix_HighpassFilterFixDec32 = WebRtcIsacfix_HighpassFilterFixDec32C;
|
| - WebRtcIsacfix_Time2Spec = WebRtcIsacfix_Time2SpecC;
|
| - WebRtcIsacfix_Spec2Time = WebRtcIsacfix_Spec2TimeC;
|
| - WebRtcIsacfix_MatrixProduct1 = WebRtcIsacfix_MatrixProduct1C;
|
| - WebRtcIsacfix_MatrixProduct2 = WebRtcIsacfix_MatrixProduct2C;
|
| -
|
| -#ifdef WEBRTC_DETECT_NEON
|
| - if ((WebRtc_GetCPUFeaturesARM() & kCPUFeatureNEON) != 0) {
|
| - WebRtcIsacfix_InitNeon();
|
| - }
|
| -#elif defined(WEBRTC_HAS_NEON)
|
| - WebRtcIsacfix_InitNeon();
|
| -#endif
|
| -
|
| -#if defined(MIPS32_LE)
|
| - WebRtcIsacfix_InitMIPS();
|
| -#endif
|
| + InitFunctionPointers();
|
|
|
| return statusInit;
|
| }
|
| @@ -575,6 +578,8 @@ int16_t WebRtcIsacfix_DecoderInit(ISACFIX_MainStruct *ISAC_main_inst)
|
| {
|
| ISACFIX_SubStruct *ISAC_inst;
|
|
|
| + InitFunctionPointers();
|
| +
|
| /* typecast pointer to real structure */
|
| ISAC_inst = (ISACFIX_SubStruct *)ISAC_main_inst;
|
|
|
|
|