AEC3 delay estimator refactoring and introducing ability to customize

This CL refactors the delay estimator in AEC3.
Furthermore, it adds:
1. Allow for a customized delay estimator behavior to simplify
development.
2. Exposes that behavior to clear configuration settings.
3. Adds logging of the delay range supported by the delay
estimator.

Bug: webrtc:8519
Change-Id: I1764a090519a78b021b2e7de565c52a6c02c848e
Reviewed-on: https://webrtc-review.googlesource.com/21166
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20733}
This commit is contained in:
Per Åhgren
2017-11-17 14:54:28 +01:00
committed by Commit Bot
parent 76f2a85027
commit 38e2d95bda
27 changed files with 910 additions and 514 deletions

View File

@ -183,8 +183,12 @@ void BlockProcessorImpl::UpdateEchoLeakageStatus(bool leakage_detected) {
BlockProcessor* BlockProcessor::Create(const EchoCanceller3Config& config,
int sample_rate_hz) {
std::unique_ptr<RenderDelayBuffer> render_buffer(
RenderDelayBuffer::Create(NumBandsForRate(sample_rate_hz)));
std::unique_ptr<RenderDelayBuffer> render_buffer(RenderDelayBuffer::Create(
NumBandsForRate(sample_rate_hz), config.delay.down_sampling_factor,
GetDownSampledBufferSize(config.delay.down_sampling_factor,
config.delay.num_filters),
GetRenderDelayBufferSize(config.delay.down_sampling_factor,
config.delay.num_filters)));
std::unique_ptr<RenderDelayController> delay_controller(
RenderDelayController::Create(config, sample_rate_hz));
std::unique_ptr<EchoRemover> echo_remover(