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 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
59 * - agcInst : AGC instance. | 59 * - agcInst : AGC instance. |
60 * - inFar : Far-end input speech vector | 60 * - inFar : Far-end input speech vector |
61 * - samples : Number of samples in input vector | 61 * - samples : Number of samples in input vector |
62 * | 62 * |
63 * Return value: | 63 * Return value: |
64 * : 0 - Normal operation. | 64 * : 0 - Normal operation. |
65 * : -1 - Error | 65 * : -1 - Error |
66 */ | 66 */ |
67 int WebRtcAgc_AddFarend(void* agcInst, | 67 int WebRtcAgc_AddFarend(void* agcInst, |
68 const int16_t* inFar, | 68 const int16_t* inFar, |
69 int16_t samples); | 69 size_t samples); |
70 | 70 |
71 /* | 71 /* |
72 * This function processes a 10 ms frame of microphone speech to determine | 72 * This function processes a 10 ms frame of microphone speech to determine |
73 * if there is active speech. The length of the input speech vector must be | 73 * if there is active speech. The length of the input speech vector must be |
74 * given in samples (80 when FS=8000, and 160 when FS=16000, FS=32000 or | 74 * given in samples (80 when FS=8000, and 160 when FS=16000, FS=32000 or |
75 * FS=48000). For very low input levels, the input signal is increased in level | 75 * FS=48000). For very low input levels, the input signal is increased in level |
76 * by multiplying and overwriting the samples in inMic[]. | 76 * by multiplying and overwriting the samples in inMic[]. |
77 * | 77 * |
78 * This function should be called before any further processing of the | 78 * This function should be called before any further processing of the |
79 * near-end microphone signal. | 79 * near-end microphone signal. |
80 * | 80 * |
81 * Input: | 81 * Input: |
82 * - agcInst : AGC instance. | 82 * - agcInst : AGC instance. |
83 * - inMic : Microphone input speech vector for each band | 83 * - inMic : Microphone input speech vector for each band |
84 * - num_bands : Number of bands in input vector | 84 * - num_bands : Number of bands in input vector |
85 * - samples : Number of samples in input vector | 85 * - samples : Number of samples in input vector |
86 * | 86 * |
87 * Return value: | 87 * Return value: |
88 * : 0 - Normal operation. | 88 * : 0 - Normal operation. |
89 * : -1 - Error | 89 * : -1 - Error |
90 */ | 90 */ |
91 int WebRtcAgc_AddMic(void* agcInst, | 91 int WebRtcAgc_AddMic(void* agcInst, |
92 int16_t* const* inMic, | 92 int16_t* const* inMic, |
93 int16_t num_bands, | 93 size_t num_bands, |
94 int16_t samples); | 94 size_t samples); |
95 | 95 |
96 /* | 96 /* |
97 * This function replaces the analog microphone with a virtual one. | 97 * This function replaces the analog microphone with a virtual one. |
98 * It is a digital gain applied to the input signal and is used in the | 98 * It is a digital gain applied to the input signal and is used in the |
99 * agcAdaptiveDigital mode where no microphone level is adjustable. The length | 99 * agcAdaptiveDigital mode where no microphone level is adjustable. The length |
100 * of the input speech vector must be given in samples (80 when FS=8000, and 160 | 100 * of the input speech vector must be given in samples (80 when FS=8000, and 160 |
101 * when FS=16000, FS=32000 or FS=48000). | 101 * when FS=16000, FS=32000 or FS=48000). |
102 * | 102 * |
103 * Input: | 103 * Input: |
104 * - agcInst : AGC instance. | 104 * - agcInst : AGC instance. |
105 * - inMic : Microphone input speech vector for each band | 105 * - inMic : Microphone input speech vector for each band |
106 * - num_bands : Number of bands in input vector | 106 * - num_bands : Number of bands in input vector |
107 * - samples : Number of samples in input vector | 107 * - samples : Number of samples in input vector |
108 * - micLevelIn : Input level of microphone (static) | 108 * - micLevelIn : Input level of microphone (static) |
109 * | 109 * |
110 * Output: | 110 * Output: |
111 * - inMic : Microphone output after processing (L band) | 111 * - inMic : Microphone output after processing (L band) |
112 * - inMic_H : Microphone output after processing (H band) | 112 * - inMic_H : Microphone output after processing (H band) |
113 * - micLevelOut : Adjusted microphone level after processing | 113 * - micLevelOut : Adjusted microphone level after processing |
114 * | 114 * |
115 * Return value: | 115 * Return value: |
116 * : 0 - Normal operation. | 116 * : 0 - Normal operation. |
117 * : -1 - Error | 117 * : -1 - Error |
118 */ | 118 */ |
119 int WebRtcAgc_VirtualMic(void* agcInst, | 119 int WebRtcAgc_VirtualMic(void* agcInst, |
120 int16_t* const* inMic, | 120 int16_t* const* inMic, |
121 int16_t num_bands, | 121 size_t num_bands, |
122 int16_t samples, | 122 size_t samples, |
123 int32_t micLevelIn, | 123 int32_t micLevelIn, |
124 int32_t* micLevelOut); | 124 int32_t* micLevelOut); |
125 | 125 |
126 /* | 126 /* |
127 * This function processes a 10 ms frame and adjusts (normalizes) the gain both | 127 * This function processes a 10 ms frame and adjusts (normalizes) the gain both |
128 * analog and digitally. The gain adjustments are done only during active | 128 * analog and digitally. The gain adjustments are done only during active |
129 * periods of speech. The length of the speech vectors must be given in samples | 129 * periods of speech. The length of the speech vectors must be given in samples |
130 * (80 when FS=8000, and 160 when FS=16000, FS=32000 or FS=48000). The echo | 130 * (80 when FS=8000, and 160 when FS=16000, FS=32000 or FS=48000). The echo |
131 * parameter can be used to ensure the AGC will not adjust upward in the | 131 * parameter can be used to ensure the AGC will not adjust upward in the |
132 * presence of echo. | 132 * presence of echo. |
(...skipping 19 matching lines...) Expand all Loading... |
152 * - saturationWarning : A returned value of 1 indicates a saturation event | 152 * - saturationWarning : A returned value of 1 indicates a saturation event |
153 * has occurred and the volume cannot be further | 153 * has occurred and the volume cannot be further |
154 * reduced. Otherwise will be set to 0. | 154 * reduced. Otherwise will be set to 0. |
155 * | 155 * |
156 * Return value: | 156 * Return value: |
157 * : 0 - Normal operation. | 157 * : 0 - Normal operation. |
158 * : -1 - Error | 158 * : -1 - Error |
159 */ | 159 */ |
160 int WebRtcAgc_Process(void* agcInst, | 160 int WebRtcAgc_Process(void* agcInst, |
161 const int16_t* const* inNear, | 161 const int16_t* const* inNear, |
162 int16_t num_bands, | 162 size_t num_bands, |
163 int16_t samples, | 163 size_t samples, |
164 int16_t* const* out, | 164 int16_t* const* out, |
165 int32_t inMicLevel, | 165 int32_t inMicLevel, |
166 int32_t* outMicLevel, | 166 int32_t* outMicLevel, |
167 int16_t echo, | 167 int16_t echo, |
168 uint8_t* saturationWarning); | 168 uint8_t* saturationWarning); |
169 | 169 |
170 /* | 170 /* |
171 * This function sets the config parameters (targetLevelDbfs, | 171 * This function sets the config parameters (targetLevelDbfs, |
172 * compressionGaindB and limiterEnable). | 172 * compressionGaindB and limiterEnable). |
173 * | 173 * |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 int32_t minLevel, | 233 int32_t minLevel, |
234 int32_t maxLevel, | 234 int32_t maxLevel, |
235 int16_t agcMode, | 235 int16_t agcMode, |
236 uint32_t fs); | 236 uint32_t fs); |
237 | 237 |
238 #if defined(__cplusplus) | 238 #if defined(__cplusplus) |
239 } | 239 } |
240 #endif | 240 #endif |
241 | 241 |
242 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_AGC_LEGACY_GAIN_CONTROL_H_ | 242 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_AGC_LEGACY_GAIN_CONTROL_H_ |
OLD | NEW |