OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2016 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 #include "webrtc/modules/audio_processing/aec3/block_processor.h" | 10 #include "webrtc/modules/audio_processing/aec3/block_processor.h" |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
161 // Update the metrics. | 161 // Update the metrics. |
162 metrics_.UpdateRender(render_buffer_overrun_occurred_); | 162 metrics_.UpdateRender(render_buffer_overrun_occurred_); |
163 } | 163 } |
164 | 164 |
165 void BlockProcessorImpl::UpdateEchoLeakageStatus(bool leakage_detected) { | 165 void BlockProcessorImpl::UpdateEchoLeakageStatus(bool leakage_detected) { |
166 echo_remover_->UpdateEchoLeakageStatus(leakage_detected); | 166 echo_remover_->UpdateEchoLeakageStatus(leakage_detected); |
167 } | 167 } |
168 | 168 |
169 } // namespace | 169 } // namespace |
170 | 170 |
171 BlockProcessor* BlockProcessor::Create(int sample_rate_hz) { | 171 BlockProcessor* BlockProcessor::Create( |
| 172 const AudioProcessing::Config::EchoCanceller3& config, |
| 173 int sample_rate_hz) { |
172 std::unique_ptr<RenderDelayBuffer> render_buffer( | 174 std::unique_ptr<RenderDelayBuffer> render_buffer( |
173 RenderDelayBuffer::Create(NumBandsForRate(sample_rate_hz))); | 175 RenderDelayBuffer::Create(NumBandsForRate(sample_rate_hz))); |
174 std::unique_ptr<RenderDelayController> delay_controller( | 176 std::unique_ptr<RenderDelayController> delay_controller( |
175 RenderDelayController::Create(sample_rate_hz)); | 177 RenderDelayController::Create(sample_rate_hz)); |
176 std::unique_ptr<EchoRemover> echo_remover( | 178 std::unique_ptr<EchoRemover> echo_remover( |
177 EchoRemover::Create(sample_rate_hz)); | 179 EchoRemover::Create(config, sample_rate_hz)); |
178 return Create(sample_rate_hz, std::move(render_buffer), | 180 return Create(config, sample_rate_hz, std::move(render_buffer), |
179 std::move(delay_controller), std::move(echo_remover)); | 181 std::move(delay_controller), std::move(echo_remover)); |
180 } | 182 } |
181 | 183 |
182 BlockProcessor* BlockProcessor::Create( | 184 BlockProcessor* BlockProcessor::Create( |
| 185 const AudioProcessing::Config::EchoCanceller3& config, |
183 int sample_rate_hz, | 186 int sample_rate_hz, |
184 std::unique_ptr<RenderDelayBuffer> render_buffer) { | 187 std::unique_ptr<RenderDelayBuffer> render_buffer) { |
185 std::unique_ptr<RenderDelayController> delay_controller( | 188 std::unique_ptr<RenderDelayController> delay_controller( |
186 RenderDelayController::Create(sample_rate_hz)); | 189 RenderDelayController::Create(sample_rate_hz)); |
187 std::unique_ptr<EchoRemover> echo_remover( | 190 std::unique_ptr<EchoRemover> echo_remover( |
188 EchoRemover::Create(sample_rate_hz)); | 191 EchoRemover::Create(config, sample_rate_hz)); |
189 return Create(sample_rate_hz, std::move(render_buffer), | 192 return Create(config, sample_rate_hz, std::move(render_buffer), |
190 std::move(delay_controller), std::move(echo_remover)); | 193 std::move(delay_controller), std::move(echo_remover)); |
191 } | 194 } |
192 | 195 |
193 BlockProcessor* BlockProcessor::Create( | 196 BlockProcessor* BlockProcessor::Create( |
| 197 const AudioProcessing::Config::EchoCanceller3& config, |
194 int sample_rate_hz, | 198 int sample_rate_hz, |
195 std::unique_ptr<RenderDelayBuffer> render_buffer, | 199 std::unique_ptr<RenderDelayBuffer> render_buffer, |
196 std::unique_ptr<RenderDelayController> delay_controller, | 200 std::unique_ptr<RenderDelayController> delay_controller, |
197 std::unique_ptr<EchoRemover> echo_remover) { | 201 std::unique_ptr<EchoRemover> echo_remover) { |
198 return new BlockProcessorImpl(sample_rate_hz, std::move(render_buffer), | 202 return new BlockProcessorImpl(sample_rate_hz, std::move(render_buffer), |
199 std::move(delay_controller), | 203 std::move(delay_controller), |
200 std::move(echo_remover)); | 204 std::move(echo_remover)); |
201 } | 205 } |
202 | 206 |
203 } // namespace webrtc | 207 } // namespace webrtc |
OLD | NEW |