Corrected the detection of narrowband render signals
This CL corrects the bug that only looked at narrowband render signals above 900 Hz and only assumed that the influence of such lasted for 6 blocks, which resulted in filter divergence and echo leakage. Bug: webrtc:9008,chromium:821670 Change-Id: I9b2635d24b260e9d9a8c5c088ab663e03fb93c42 Reviewed-on: https://webrtc-review.googlesource.com/61800 Commit-Queue: Per Åhgren <peah@webrtc.org> Reviewed-by: Ivo Creusen <ivoc@webrtc.org> Cr-Commit-Position: refs/heads/master@{#22434}
This commit is contained in:
@ -46,7 +46,7 @@ void ProduceSinusoid(int sample_rate_hz,
|
||||
#if RTC_DCHECK_IS_ON && GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID)
|
||||
// Verifies that the check for non-null output parameter works.
|
||||
TEST(RenderSignalAnalyzer, NullMaskOutput) {
|
||||
RenderSignalAnalyzer analyzer;
|
||||
RenderSignalAnalyzer analyzer(EchoCanceller3Config{});
|
||||
EXPECT_DEATH(analyzer.MaskRegionsAroundNarrowBands(nullptr), "");
|
||||
}
|
||||
|
||||
@ -54,7 +54,7 @@ TEST(RenderSignalAnalyzer, NullMaskOutput) {
|
||||
|
||||
// Verify that no narrow bands are detected in a Gaussian noise signal.
|
||||
TEST(RenderSignalAnalyzer, NoFalseDetectionOfNarrowBands) {
|
||||
RenderSignalAnalyzer analyzer;
|
||||
RenderSignalAnalyzer analyzer(EchoCanceller3Config{});
|
||||
Random random_generator(42U);
|
||||
std::vector<std::vector<float>> x(3, std::vector<float>(kBlockSize, 0.f));
|
||||
std::array<float, kBlockSize> x_old;
|
||||
@ -85,7 +85,7 @@ TEST(RenderSignalAnalyzer, NoFalseDetectionOfNarrowBands) {
|
||||
|
||||
// Verify that a sinusiod signal is detected as narrow bands.
|
||||
TEST(RenderSignalAnalyzer, NarrowBandDetection) {
|
||||
RenderSignalAnalyzer analyzer;
|
||||
RenderSignalAnalyzer analyzer(EchoCanceller3Config{});
|
||||
Random random_generator(42U);
|
||||
std::vector<std::vector<float>> x(3, std::vector<float>(kBlockSize, 0.f));
|
||||
std::array<float, kBlockSize> x_old;
|
||||
|
||||
Reference in New Issue
Block a user