Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(20)

Side by Side Diff: webrtc/modules/audio_processing/aec3/block_processor.cc

Issue 2967603002: Added the ability to adjust the AEC3 performance for large rooms (Closed)
Patch Set: Changes in response to reviewer commments Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698