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 |
11 /* | 11 /* |
12 * Specifies the interface for the AEC core. | 12 * Specifies the interface for the AEC core. |
13 */ | 13 */ |
14 | 14 |
15 #ifndef WEBRTC_MODULES_AUDIO_PROCESSING_AEC_AEC_CORE_H_ | 15 #ifndef WEBRTC_MODULES_AUDIO_PROCESSING_AEC_AEC_CORE_H_ |
16 #define WEBRTC_MODULES_AUDIO_PROCESSING_AEC_AEC_CORE_H_ | 16 #define WEBRTC_MODULES_AUDIO_PROCESSING_AEC_AEC_CORE_H_ |
17 | 17 |
| 18 #include <stddef.h> |
| 19 |
18 #include "webrtc/typedefs.h" | 20 #include "webrtc/typedefs.h" |
19 | 21 |
20 #define FRAME_LEN 80 | 22 #define FRAME_LEN 80 |
21 #define PART_LEN 64 // Length of partition | 23 #define PART_LEN 64 // Length of partition |
22 #define PART_LEN1 (PART_LEN + 1) // Unique fft coefficients | 24 #define PART_LEN1 (PART_LEN + 1) // Unique fft coefficients |
23 #define PART_LEN2 (PART_LEN * 2) // Length of partition * 2 | 25 #define PART_LEN2 (PART_LEN * 2) // Length of partition * 2 |
24 #define NUM_HIGH_BANDS_MAX 2 // Max number of high bands | 26 #define NUM_HIGH_BANDS_MAX 2 // Max number of high bands |
25 | 27 |
26 typedef float complex_t[2]; | 28 typedef float complex_t[2]; |
27 // For performance reasons, some arrays of complex numbers are replaced by twice | 29 // For performance reasons, some arrays of complex numbers are replaced by twice |
(...skipping 30 matching lines...) Expand all Loading... |
58 #if defined(MIPS_FPU_LE) | 60 #if defined(MIPS_FPU_LE) |
59 void WebRtcAec_InitAec_mips(void); | 61 void WebRtcAec_InitAec_mips(void); |
60 #endif | 62 #endif |
61 #if defined(WEBRTC_DETECT_NEON) || defined(WEBRTC_HAS_NEON) | 63 #if defined(WEBRTC_DETECT_NEON) || defined(WEBRTC_HAS_NEON) |
62 void WebRtcAec_InitAec_neon(void); | 64 void WebRtcAec_InitAec_neon(void); |
63 #endif | 65 #endif |
64 | 66 |
65 void WebRtcAec_BufferFarendPartition(AecCore* aec, const float* farend); | 67 void WebRtcAec_BufferFarendPartition(AecCore* aec, const float* farend); |
66 void WebRtcAec_ProcessFrames(AecCore* aec, | 68 void WebRtcAec_ProcessFrames(AecCore* aec, |
67 const float* const* nearend, | 69 const float* const* nearend, |
68 int num_bands, | 70 size_t num_bands, |
69 int num_samples, | 71 size_t num_samples, |
70 int knownDelay, | 72 int knownDelay, |
71 float* const* out); | 73 float* const* out); |
72 | 74 |
73 // A helper function to call WebRtc_MoveReadPtr() for all far-end buffers. | 75 // A helper function to call WebRtc_MoveReadPtr() for all far-end buffers. |
74 // Returns the number of elements moved, and adjusts |system_delay| by the | 76 // Returns the number of elements moved, and adjusts |system_delay| by the |
75 // corresponding amount in ms. | 77 // corresponding amount in ms. |
76 int WebRtcAec_MoveFarReadPtr(AecCore* aec, int elements); | 78 int WebRtcAec_MoveFarReadPtr(AecCore* aec, int elements); |
77 | 79 |
78 // Calculates the median, standard deviation and amount of poor values among the | 80 // Calculates the median, standard deviation and amount of poor values among the |
79 // delay estimates aggregated up to the first call to the function. After that | 81 // delay estimates aggregated up to the first call to the function. After that |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 // Returns the current |system_delay|, i.e., the buffered difference between | 120 // Returns the current |system_delay|, i.e., the buffered difference between |
119 // far-end and near-end. | 121 // far-end and near-end. |
120 int WebRtcAec_system_delay(AecCore* self); | 122 int WebRtcAec_system_delay(AecCore* self); |
121 | 123 |
122 // Sets the |system_delay| to |value|. Note that if the value is changed | 124 // Sets the |system_delay| to |value|. Note that if the value is changed |
123 // improperly, there can be a performance regression. So it should be used with | 125 // improperly, there can be a performance regression. So it should be used with |
124 // care. | 126 // care. |
125 void WebRtcAec_SetSystemDelay(AecCore* self, int delay); | 127 void WebRtcAec_SetSystemDelay(AecCore* self, int delay); |
126 | 128 |
127 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_AEC_AEC_CORE_H_ | 129 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_AEC_AEC_CORE_H_ |
OLD | NEW |