You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			69 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
		
		
			
		
	
	
			69 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
| 
											10 years ago
										 | /*
 | ||
|  |  *  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_
 |