Robustification of the echo suppression behavior during headset usage.
This CL robustifies the echo removal behavior when headsets are used. In particular it: -Introduces a secondary, more refined alignment when no alignment can be found using the delay estimator. -Changes decision logic for when to use the linear filter output. -Changes the decision logic for when to be transparent. -Changes the way that the transparent mode works. -Makes the nonlinear mode less aggressive. -Removes the detector for non-audible echoes. -Makes the attenuation when there are signals with strong narrowband characteristics more mild in scenarios with low render. Furthermore the CL: -Removes the input of external echo leakage information. Bug: webrtc:9047,chromium:824111,webrtc:8314,webrtc:8671,webrtc:5201,webrtc:5919 Change-Id: Ied1fe0c0a35d3c31b47606ed2db319a73644d406 Reviewed-on: https://webrtc-review.googlesource.com/60866 Commit-Queue: Per Åhgren <peah@webrtc.org> Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org> Cr-Commit-Position: refs/heads/master@{#22548}
This commit is contained in:
@ -75,12 +75,14 @@ TEST(RenderDelayBuffer, SetDelay) {
|
||||
EchoCanceller3Config config;
|
||||
std::unique_ptr<RenderDelayBuffer> delay_buffer(
|
||||
RenderDelayBuffer::Create(config, 1));
|
||||
ASSERT_FALSE(delay_buffer->Delay());
|
||||
for (size_t delay = config.delay.min_echo_path_delay_blocks + 1; delay < 20;
|
||||
++delay) {
|
||||
delay_buffer->SetDelay(delay);
|
||||
ASSERT_TRUE(delay_buffer->Delay());
|
||||
EXPECT_EQ(delay, *delay_buffer->Delay());
|
||||
ASSERT_TRUE(delay_buffer->Delay());
|
||||
delay_buffer->Reset();
|
||||
size_t initial_internal_delay = config.delay.min_echo_path_delay_blocks +
|
||||
config.delay.api_call_jitter_blocks;
|
||||
for (size_t delay = initial_internal_delay;
|
||||
delay < initial_internal_delay + 20; ++delay) {
|
||||
ASSERT_TRUE(delay_buffer->SetDelay(delay));
|
||||
EXPECT_EQ(delay, delay_buffer->Delay());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user