1 /* 2 * Copyright (c) 2018 The WebRTC project authors. All Rights Reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 #ifndef MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_SOURCE_ISAC_VAD_H_ 12 #define MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_SOURCE_ISAC_VAD_H_ 13 14 #include <stddef.h> 15 16 #include "modules/audio_coding/codecs/isac/main/source/structs.h" 17 18 void WebRtcIsac_InitPitchFilter(PitchFiltstr* pitchfiltdata); 19 void WebRtcIsac_InitPitchAnalysis(PitchAnalysisStruct* state); 20 void WebRtcIsac_InitPreFilterbank(PreFiltBankstr* prefiltdata); 21 22 double WebRtcIsac_LevDurb(double* a, double* k, double* r, size_t order); 23 24 /* The number of all-pass filter factors in an upper or lower channel*/ 25 #define NUMBEROFCHANNELAPSECTIONS 2 26 27 /* The upper channel all-pass filter factors */ 28 extern const float WebRtcIsac_kUpperApFactorsFloat[2]; 29 30 /* The lower channel all-pass filter factors */ 31 extern const float WebRtcIsac_kLowerApFactorsFloat[2]; 32 33 void WebRtcIsac_AllPassFilter2Float(float* InOut, 34 const float* APSectionFactors, 35 int lengthInOut, 36 int NumberOfSections, 37 float* FilterState); 38 void WebRtcIsac_SplitAndFilterFloat(float* in, 39 float* LP, 40 float* HP, 41 double* LP_la, 42 double* HP_la, 43 PreFiltBankstr* prefiltdata); 44 45 #endif // MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_SOURCE_ISAC_VAD_H_ 46