| /* |
| * 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. |
| */ |
| |
| #ifndef WEBRTC_MODULES_AUDIO_PROCESSING_AEC_ECHO_CANCELLATION_INTERNAL_H_ |
| #define WEBRTC_MODULES_AUDIO_PROCESSING_AEC_ECHO_CANCELLATION_INTERNAL_H_ |
| |
| #include "webrtc/modules/audio_processing/aec/aec_core.h" |
| #include "webrtc/modules/audio_processing/utility/ring_buffer.h" |
| |
| typedef struct { |
| int delayCtr; |
| int sampFreq; |
| int splitSampFreq; |
| int scSampFreq; |
| float sampFactor; // scSampRate / sampFreq |
| short skewMode; |
| int bufSizeStart; |
| int knownDelay; |
| int rate_factor; |
| |
| short initFlag; // indicates if AEC has been initialized |
| |
| // Variables used for averaging far end buffer size |
| short counter; |
| int sum; |
| short firstVal; |
| short checkBufSizeCtr; |
| |
| // Variables used for delay shifts |
| short msInSndCardBuf; |
| short filtDelay; // Filtered delay estimate. |
| int timeForDelayChange; |
| int startup_phase; |
| int checkBuffSize; |
| short lastDelayDiff; |
| |
| #ifdef WEBRTC_AEC_DEBUG_DUMP |
| RingBuffer* far_pre_buf_s16; // Time domain far-end pre-buffer in int16_t. |
| FILE* bufFile; |
| FILE* delayFile; |
| FILE* skewFile; |
| #endif |
| |
| // Structures |
| void* resampler; |
| |
| int skewFrCtr; |
| int resample; // if the skew is small enough we don't resample |
| int highSkewCtr; |
| float skew; |
| |
| RingBuffer* far_pre_buf; // Time domain far-end pre-buffer. |
| |
| int lastError; |
| |
| int farend_started; |
| |
| AecCore* aec; |
| } aecpc_t; |
| |
| #endif // WEBRTC_MODULES_AUDIO_PROCESSING_AEC_ECHO_CANCELLATION_INTERNAL_H_ |