Add a specific AEC3 behavior for setups with known clock-drift

TBR=gustaf@webrtc.org

Change-Id: I9c726fc8e1b010255a1bee166c99fe6cb75d7658
Bug: chromium:826655,webrtc:9079
Reviewed-on: https://webrtc-review.googlesource.com/64982
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22657}
This commit is contained in:
Per Åhgren
2018-03-28 16:31:57 +02:00
committed by Commit Bot
parent 4ea50c2b42
commit 251c7355aa
6 changed files with 163 additions and 75 deletions

View File

@ -12,5 +12,7 @@
namespace webrtc {
EchoCanceller3Config::EchoCanceller3Config() = default;
EchoCanceller3Config::EchoCanceller3Config(const EchoCanceller3Config& e) =
default;
} // namespace webrtc

View File

@ -18,6 +18,7 @@ namespace webrtc {
// Configuration struct for EchoCanceller3
struct EchoCanceller3Config {
EchoCanceller3Config();
EchoCanceller3Config(const EchoCanceller3Config& e);
struct Delay {
size_t default_delay = 5;
size_t down_sampling_factor = 4;
@ -119,6 +120,18 @@ struct EchoCanceller3Config {
bool has_clock_drift = false;
} echo_removal_control;
struct EchoModel {
size_t noise_floor_hold = 50;
float min_noise_floor_power = 1638400.f;
float stationary_gate_slope = 10.f;
float noise_gate_power = 27509.42f;
float noise_gate_slope = 0.3f;
size_t render_pre_window_size = 1;
size_t render_post_window_size = 3;
float nonlinear_hold = 2;
float nonlinear_release = 0.1f;
} echo_model;
};
} // namespace webrtc