OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 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 | 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 | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
11 #ifndef WEBRTC_MODULES_AUDIO_PROCESSING_AEC_AEC_CORE_INTERNAL_H_ | 11 #ifndef WEBRTC_MODULES_AUDIO_PROCESSING_AEC_AEC_CORE_INTERNAL_H_ |
12 #define WEBRTC_MODULES_AUDIO_PROCESSING_AEC_AEC_CORE_INTERNAL_H_ | 12 #define WEBRTC_MODULES_AUDIO_PROCESSING_AEC_AEC_CORE_INTERNAL_H_ |
13 | 13 |
14 extern "C" { | 14 extern "C" { |
15 #include "webrtc/common_audio/ring_buffer.h" | 15 #include "webrtc/common_audio/ring_buffer.h" |
16 } | 16 } |
17 #include "webrtc/common_audio/wav_file.h" | 17 #include "webrtc/common_audio/wav_file.h" |
18 #include "webrtc/modules/audio_processing/aec/aec_common.h" | 18 #include "webrtc/modules/audio_processing/aec/aec_common.h" |
19 #include "webrtc/modules/audio_processing/aec/aec_core.h" | 19 #include "webrtc/modules/audio_processing/aec/aec_core.h" |
| 20 #include "webrtc/modules/audio_processing/utility/block_fraction_calculator.h" |
20 #include "webrtc/modules/audio_processing/utility/block_mean_calculator.h" | 21 #include "webrtc/modules/audio_processing/utility/block_mean_calculator.h" |
21 #include "webrtc/typedefs.h" | 22 #include "webrtc/typedefs.h" |
22 | 23 |
23 namespace webrtc { | 24 namespace webrtc { |
24 | 25 |
25 // Number of partitions for the extended filter mode. The first one is an enum | 26 // Number of partitions for the extended filter mode. The first one is an enum |
26 // to be used in array declarations, as it represents the maximum filter length. | 27 // to be used in array declarations, as it represents the maximum filter length. |
27 enum { kExtendedNumPartitions = 32 }; | 28 enum { kExtendedNumPartitions = 32 }; |
28 static const int kNormalNumPartitions = 12; | 29 static const int kNormalNumPartitions = 12; |
29 | 30 |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
114 PowerLevel nearlevel; | 115 PowerLevel nearlevel; |
115 PowerLevel linoutlevel; | 116 PowerLevel linoutlevel; |
116 PowerLevel nlpoutlevel; | 117 PowerLevel nlpoutlevel; |
117 | 118 |
118 int metricsMode; | 119 int metricsMode; |
119 int stateCounter; | 120 int stateCounter; |
120 Stats erl; | 121 Stats erl; |
121 Stats erle; | 122 Stats erle; |
122 Stats aNlp; | 123 Stats aNlp; |
123 Stats rerl; | 124 Stats rerl; |
| 125 BlockFractionCalculator divergent_filter_fraction; |
124 | 126 |
125 // Quantities to control H band scaling for SWB input | 127 // Quantities to control H band scaling for SWB input |
126 int freq_avg_ic; // initial bin for averaging nlp gain | 128 int freq_avg_ic; // initial bin for averaging nlp gain |
127 int flag_Hband_cn; // for comfort noise | 129 int flag_Hband_cn; // for comfort noise |
128 float cn_scale_Hband; // scale for comfort noise in H band | 130 float cn_scale_Hband; // scale for comfort noise in H band |
129 | 131 |
130 int delay_metrics_delivered; | 132 int delay_metrics_delivered; |
131 int delay_histogram[kHistorySizeBlocks]; | 133 int delay_histogram[kHistorySizeBlocks]; |
132 int num_delay_values; | 134 int num_delay_values; |
133 int delay_median; | 135 int delay_median; |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
226 typedef void (*WebRtcAecStoreAsComplex)(const float* data, | 228 typedef void (*WebRtcAecStoreAsComplex)(const float* data, |
227 float data_complex[2][PART_LEN1]); | 229 float data_complex[2][PART_LEN1]); |
228 extern WebRtcAecStoreAsComplex WebRtcAec_StoreAsComplex; | 230 extern WebRtcAecStoreAsComplex WebRtcAec_StoreAsComplex; |
229 | 231 |
230 typedef void (*WebRtcAecWindowData)(float* x_windowed, const float* x); | 232 typedef void (*WebRtcAecWindowData)(float* x_windowed, const float* x); |
231 extern WebRtcAecWindowData WebRtcAec_WindowData; | 233 extern WebRtcAecWindowData WebRtcAec_WindowData; |
232 | 234 |
233 } // namespace webrtc | 235 } // namespace webrtc |
234 | 236 |
235 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_AEC_AEC_CORE_INTERNAL_H_ | 237 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_AEC_AEC_CORE_INTERNAL_H_ |
OLD | NEW |