blob: 4303c82711dfae10f9911eb7f1a31c25d83902da [file] [log] [blame]
/*
* Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
/*
* pitch_estimator.h
*
* Pitch functions
*
*/
#ifndef MODULES_AUDIO_CODING_CODECS_ISAC_FIX_SOURCE_PITCH_ESTIMATOR_H_
#define MODULES_AUDIO_CODING_CODECS_ISAC_FIX_SOURCE_PITCH_ESTIMATOR_H_
#include "modules/audio_coding/codecs/isac/fix/source/structs.h"
void WebRtcIsacfix_PitchAnalysis(
const int16_t* in, /* PITCH_FRAME_LEN samples */
int16_t* outQ0, /* PITCH_FRAME_LEN+QLOOKAHEAD samples */
PitchAnalysisStruct* State,
int16_t* lagsQ7,
int16_t* PitchGains_Q12);
void WebRtcIsacfix_InitialPitch(const int16_t* in,
PitchAnalysisStruct* State,
int16_t* qlags);
void WebRtcIsacfix_PitchFilter(int16_t* indatFix,
int16_t* outdatQQ,
PitchFiltstr* pfp,
int16_t* lagsQ7,
int16_t* gainsQ12,
int16_t type);
void WebRtcIsacfix_PitchFilterCore(int loopNumber,
int16_t gain,
size_t index,
int16_t sign,
int16_t* inputState,
int16_t* outputBuff2,
const int16_t* coefficient,
int16_t* inputBuf,
int16_t* outputBuf,
int* index2);
void WebRtcIsacfix_PitchFilterGains(const int16_t* indatQ0,
PitchFiltstr* pfp,
int16_t* lagsQ7,
int16_t* gainsQ12);
void WebRtcIsacfix_DecimateAllpass32(
const int16_t* in,
int32_t* state_in, /* array of size: 2*ALLPASSSECTIONS+1 */
int16_t N, /* number of input samples */
int16_t* out); /* array of size N/2 */
int32_t WebRtcIsacfix_Log2Q8(uint32_t x);
void WebRtcIsacfix_PCorr2Q32(const int16_t* in, int32_t* logcorQ8);
#endif /* MODULES_AUDIO_CODING_CODECS_ISAC_FIX_SOURCE_PITCH_ESTIMATOR_H_ */