OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 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 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 float max; | 46 float max; |
47 float sum; | 47 float sum; |
48 float hisum; | 48 float hisum; |
49 float himean; | 49 float himean; |
50 size_t counter; | 50 size_t counter; |
51 size_t hicounter; | 51 size_t hicounter; |
52 } Stats; | 52 } Stats; |
53 | 53 |
54 typedef struct AecCore AecCore; | 54 typedef struct AecCore AecCore; |
55 | 55 |
56 AecCore* WebRtcAec_CreateAec(); // Returns NULL on error. | 56 AecCore* WebRtcAec_CreateAec(int instance_count); // Returns NULL on error. |
57 void WebRtcAec_FreeAec(AecCore* aec); | 57 void WebRtcAec_FreeAec(AecCore* aec); |
58 int WebRtcAec_InitAec(AecCore* aec, int sampFreq); | 58 int WebRtcAec_InitAec(AecCore* aec, int sampFreq); |
59 void WebRtcAec_InitAec_SSE2(void); | 59 void WebRtcAec_InitAec_SSE2(void); |
60 #if defined(MIPS_FPU_LE) | 60 #if defined(MIPS_FPU_LE) |
61 void WebRtcAec_InitAec_mips(void); | 61 void WebRtcAec_InitAec_mips(void); |
62 #endif | 62 #endif |
63 #if defined(WEBRTC_DETECT_NEON) || defined(WEBRTC_HAS_NEON) | 63 #if defined(WEBRTC_DETECT_NEON) || defined(WEBRTC_HAS_NEON) |
64 void WebRtcAec_InitAec_neon(void); | 64 void WebRtcAec_InitAec_neon(void); |
65 #endif | 65 #endif |
66 | 66 |
(...skipping 23 matching lines...) Expand all Loading... |
90 | 90 |
91 // Returns the echo state (1: echo, 0: no echo). | 91 // Returns the echo state (1: echo, 0: no echo). |
92 int WebRtcAec_echo_state(AecCore* self); | 92 int WebRtcAec_echo_state(AecCore* self); |
93 | 93 |
94 // Gets statistics of the echo metrics ERL, ERLE, A_NLP. | 94 // Gets statistics of the echo metrics ERL, ERLE, A_NLP. |
95 void WebRtcAec_GetEchoStats(AecCore* self, | 95 void WebRtcAec_GetEchoStats(AecCore* self, |
96 Stats* erl, | 96 Stats* erl, |
97 Stats* erle, | 97 Stats* erle, |
98 Stats* a_nlp, | 98 Stats* a_nlp, |
99 float* divergent_filter_fraction); | 99 float* divergent_filter_fraction); |
100 #ifdef WEBRTC_AEC_DEBUG_DUMP | |
101 void* WebRtcAec_far_time_buf(AecCore* self); | |
102 #endif | |
103 | 100 |
104 // Sets local configuration modes. | 101 // Sets local configuration modes. |
105 void WebRtcAec_SetConfigCore(AecCore* self, | 102 void WebRtcAec_SetConfigCore(AecCore* self, |
106 int nlp_mode, | 103 int nlp_mode, |
107 int metrics_mode, | 104 int metrics_mode, |
108 int delay_logging); | 105 int delay_logging); |
109 | 106 |
110 // Non-zero enables, zero disables. | 107 // Non-zero enables, zero disables. |
111 void WebRtcAec_enable_delay_agnostic(AecCore* self, int enable); | 108 void WebRtcAec_enable_delay_agnostic(AecCore* self, int enable); |
112 | 109 |
(...skipping 24 matching lines...) Expand all Loading... |
137 int WebRtcAec_system_delay(AecCore* self); | 134 int WebRtcAec_system_delay(AecCore* self); |
138 | 135 |
139 // Sets the |system_delay| to |value|. Note that if the value is changed | 136 // Sets the |system_delay| to |value|. Note that if the value is changed |
140 // improperly, there can be a performance regression. So it should be used with | 137 // improperly, there can be a performance regression. So it should be used with |
141 // care. | 138 // care. |
142 void WebRtcAec_SetSystemDelay(AecCore* self, int delay); | 139 void WebRtcAec_SetSystemDelay(AecCore* self, int delay); |
143 | 140 |
144 } // namespace webrtc | 141 } // namespace webrtc |
145 | 142 |
146 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_AEC_AEC_CORE_H_ | 143 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_AEC_AEC_CORE_H_ |
OLD | NEW |