mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-13 22:00:47 +01:00

This change makes the transparent mode classifier consider filter convergence also for microphone signals with very low volume. This is in order to prevent entering transparent mode when there is low, but audible, echo. Furthermore, the suppression gain during transparent mode is restored to avoid leaks when the echo is too low to be reliably detected by filter convergence. Bug: webrtc:10232, chromium:1140452 Change-Id: Idd4f40c4aee7c20baa444afaa5ec604eb65bcfd0 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/189786 Reviewed-by: Per Åhgren <peah@webrtc.org> Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org> Cr-Commit-Position: refs/heads/master@{#32461}
45 lines
1.4 KiB
C++
45 lines
1.4 KiB
C++
/*
|
|
* Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
#ifndef MODULES_AUDIO_PROCESSING_AEC3_SUBTRACTOR_OUTPUT_ANALYZER_H_
|
|
#define MODULES_AUDIO_PROCESSING_AEC3_SUBTRACTOR_OUTPUT_ANALYZER_H_
|
|
|
|
#include <vector>
|
|
|
|
#include "modules/audio_processing/aec3/subtractor_output.h"
|
|
|
|
namespace webrtc {
|
|
|
|
// Class for analyzing the properties subtractor output.
|
|
class SubtractorOutputAnalyzer {
|
|
public:
|
|
explicit SubtractorOutputAnalyzer(size_t num_capture_channels);
|
|
~SubtractorOutputAnalyzer() = default;
|
|
|
|
// Analyses the subtractor output.
|
|
void Update(rtc::ArrayView<const SubtractorOutput> subtractor_output,
|
|
bool* any_filter_converged,
|
|
bool* any_coarse_filter_converged,
|
|
bool* all_filters_diverged);
|
|
|
|
const std::vector<bool>& ConvergedFilters() const {
|
|
return filters_converged_;
|
|
}
|
|
|
|
// Handle echo path change.
|
|
void HandleEchoPathChange();
|
|
|
|
private:
|
|
std::vector<bool> filters_converged_;
|
|
};
|
|
|
|
} // namespace webrtc
|
|
|
|
#endif // MODULES_AUDIO_PROCESSING_AEC3_SUBTRACTOR_OUTPUT_ANALYZER_H_
|