AEC3: Parametrize the shadow filter output usage
This CL introduces the ability to control the usage of the shadow filter output in the echo canceller output. Bug: webrtc:9694,chromium:879451 Change-Id: I01f90de60de1799b32892051c176bda5e1a8d33e Reviewed-on: https://webrtc-review.googlesource.com/97020 Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org> Commit-Queue: Per Åhgren <peah@webrtc.org> Cr-Commit-Position: refs/heads/master@{#24506}
This commit is contained in:
@ -58,6 +58,7 @@ struct EchoCanceller3Config {
|
|||||||
size_t config_change_duration_blocks = 250;
|
size_t config_change_duration_blocks = 250;
|
||||||
float initial_state_seconds = 2.5f;
|
float initial_state_seconds = 2.5f;
|
||||||
bool conservative_initial_phase = false;
|
bool conservative_initial_phase = false;
|
||||||
|
bool enable_shadow_filter_output_usage = true;
|
||||||
} filter;
|
} filter;
|
||||||
|
|
||||||
struct Erle {
|
struct Erle {
|
||||||
|
|||||||
@ -162,7 +162,9 @@ EchoRemoverImpl::EchoRemoverImpl(const EchoCanceller3Config& config,
|
|||||||
new ApmDataDumper(rtc::AtomicOps::Increment(&instance_count_))),
|
new ApmDataDumper(rtc::AtomicOps::Increment(&instance_count_))),
|
||||||
optimization_(DetectOptimization()),
|
optimization_(DetectOptimization()),
|
||||||
sample_rate_hz_(sample_rate_hz),
|
sample_rate_hz_(sample_rate_hz),
|
||||||
use_shadow_filter_output_(UseShadowFilterOutput()),
|
use_shadow_filter_output_(
|
||||||
|
UseShadowFilterOutput() &&
|
||||||
|
config_.filter.enable_shadow_filter_output_usage),
|
||||||
use_smooth_signal_transitions_(UseSmoothSignalTransitions()),
|
use_smooth_signal_transitions_(UseSmoothSignalTransitions()),
|
||||||
subtractor_(config, data_dumper_.get(), optimization_),
|
subtractor_(config, data_dumper_.get(), optimization_),
|
||||||
suppression_gain_(config_, optimization_, sample_rate_hz),
|
suppression_gain_(config_, optimization_, sample_rate_hz),
|
||||||
|
|||||||
@ -235,6 +235,8 @@ class Aec3ParametersParser {
|
|||||||
&cfg.filter.initial_state_seconds);
|
&cfg.filter.initial_state_seconds);
|
||||||
ReadParam(section, "conservative_initial_phase",
|
ReadParam(section, "conservative_initial_phase",
|
||||||
&cfg.filter.conservative_initial_phase);
|
&cfg.filter.conservative_initial_phase);
|
||||||
|
ReadParam(section, "enable_shadow_filter_output_usage",
|
||||||
|
&cfg.filter.enable_shadow_filter_output_usage);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rtc::GetValueFromJsonObject(root, "erle", §ion)) {
|
if (rtc::GetValueFromJsonObject(root, "erle", §ion)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user