Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(759)

Unified Diff: webrtc/modules/audio_processing/aec3/suppression_gain.h

Issue 3003733002: Utilizing the AEC3 config struct for constants. (Closed)
Patch Set: Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/audio_processing/aec3/suppression_gain.h
diff --git a/webrtc/modules/audio_processing/aec3/suppression_gain.h b/webrtc/modules/audio_processing/aec3/suppression_gain.h
index d22eb8a5232c16e6701bb0dce12abfca24261640..86956c2f820e59d14c7dc7f6a89aa5e0a1e5ef10 100644
--- a/webrtc/modules/audio_processing/aec3/suppression_gain.h
+++ b/webrtc/modules/audio_processing/aec3/suppression_gain.h
@@ -16,13 +16,15 @@
#include "webrtc/modules/audio_processing/aec3/aec3_common.h"
#include "webrtc/modules/audio_processing/aec3/render_signal_analyzer.h"
+#include "webrtc/modules/audio_processing/include/audio_processing.h"
#include "webrtc/rtc_base/constructormagic.h"
namespace webrtc {
class SuppressionGain {
public:
- explicit SuppressionGain(Aec3Optimization optimization);
+ SuppressionGain(const AudioProcessing::Config::EchoCanceller3& config,
+ Aec3Optimization optimization);
void GetGain(const std::array<float, kFftLengthBy2Plus1>& nearend,
const std::array<float, kFftLengthBy2Plus1>& echo,
const std::array<float, kFftLengthBy2Plus1>& comfort_noise,
@@ -34,6 +36,32 @@ class SuppressionGain {
std::array<float, kFftLengthBy2Plus1>* low_band_gain);
private:
+ void UpdateMaxGainIncrease(
+ size_t no_saturation_counter,
+ bool low_noise_render,
+ const std::array<float, kFftLengthBy2Plus1>& last_echo,
+ const std::array<float, kFftLengthBy2Plus1>& echo,
+ const std::array<float, kFftLengthBy2Plus1>& last_gain,
+ const std::array<float, kFftLengthBy2Plus1>& new_gain,
+ std::array<float, kFftLengthBy2Plus1>* gain_increase) const;
+
+ void GainToNoAudibleEcho(
+ bool low_noise_render,
+ bool saturated_echo,
+ const std::array<float, kFftLengthBy2Plus1>& nearend,
+ const std::array<float, kFftLengthBy2Plus1>& echo,
+ const std::array<float, kFftLengthBy2Plus1>& masker,
+ const std::array<float, kFftLengthBy2Plus1>& min_gain,
+ const std::array<float, kFftLengthBy2Plus1>& max_gain,
+ const std::array<float, kFftLengthBy2Plus1>& one_by_echo,
+ std::array<float, kFftLengthBy2Plus1>* gain) const;
+
+ void MaskingPower(const std::array<float, kFftLengthBy2Plus1>& nearend,
+ const std::array<float, kFftLengthBy2Plus1>& comfort_noise,
+ const std::array<float, kFftLengthBy2Plus1>& last_masker,
+ const std::array<float, kFftLengthBy2Plus1>& gain,
+ std::array<float, kFftLengthBy2Plus1>* masker) const;
+
void LowerBandGain(bool stationary_with_low_power,
const rtc::Optional<int>& narrow_peak_band,
bool saturated_echo,
@@ -58,7 +86,8 @@ class SuppressionGain {
LowNoiseRenderDetector low_render_detector_;
size_t no_saturation_counter_ = 0;
- RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(SuppressionGain);
+ const AudioProcessing::Config::EchoCanceller3 config_;
+ RTC_DISALLOW_COPY_AND_ASSIGN(SuppressionGain);
};
} // namespace webrtc

Powered by Google App Engine
This is Rietveld 408576698