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

Unified Diff: webrtc/modules/audio_processing/include/audio_processing.h

Issue 3003733002: Utilizing the AEC3 config struct for constants. (Closed)
Patch Set: Added comment 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
« no previous file with comments | « webrtc/modules/audio_processing/aec3/suppression_gain_unittest.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/modules/audio_processing/include/audio_processing.h
diff --git a/webrtc/modules/audio_processing/include/audio_processing.h b/webrtc/modules/audio_processing/include/audio_processing.h
index 0a0951791abc623dd2932a5f54011a2e9d1cbfb5..de77bac30ae04f796f7803331acc76680a46212d 100644
--- a/webrtc/modules/audio_processing/include/audio_processing.h
+++ b/webrtc/modules/audio_processing/include/audio_processing.h
@@ -17,6 +17,7 @@
#include <math.h>
#include <stddef.h> // size_t
#include <stdio.h> // FILE
+#include <string.h>
#include <vector>
#include "webrtc/modules/audio_processing/beamformer/array_util.h"
@@ -267,6 +268,49 @@ class AudioProcessing : public rtc::RefCountInterface {
// The functionality is not yet activated in the code and turning this on
// does not yet have the desired behavior.
struct EchoCanceller3 {
+ struct Param {
+ struct Erle {
+ float min = 1.f;
+ float max_l = 8.f;
+ float max_h = 1.5f;
+ } erle;
+
+ struct EpStrength {
+ float lf = 100.f;
+ float mf = 1000.f;
+ float hf = 5000.f;
+ float default_len = 0.7f;
+ } ep_strength;
+
+ struct Mask {
+ float m1 = 0.01f;
+ float m2 = 0.001f;
+ float m3 = 0.01f;
+ float m4 = 0.1f;
+ } gain_mask;
+
+ struct EchoAudibility {
+ float low_render_limit = 192.f;
+ float normal_render_limit = 64.f;
+ } echo_audibility;
+
+ struct GainUpdates {
+ struct GainChanges {
+ float max_inc;
+ float max_dec;
+ float rate_inc;
+ float rate_dec;
+ float min_inc;
+ float min_dec;
+ };
+
+ GainChanges low_noise = {8.f, 8.f, 2.f, 2.f, 4.f, 4.f};
+ GainChanges normal = {4.f, 4.f, 2.f, 2.f, 1.2f, 2.f};
+ GainChanges saturation = {1.2f, 1.2f, 1.5f, 1.5f, 1.f, 1.f};
+
+ float floor_first_increase = 0.001f;
+ } gain_updates;
+ } param;
bool enabled = false;
} echo_canceller3;
@@ -277,6 +321,17 @@ class AudioProcessing : public rtc::RefCountInterface {
struct GainController2 {
bool enabled = false;
} gain_controller2;
+
+ // Explicit copy assignment implementation to avoid issues with memory
+ // sanitizer complaints in case of self-assignment.
+ // TODO(peah): Add buildflag to ensure that this is only included for memory
+ // sanitizer builds.
+ Config& operator=(const Config& config) {
+ if (this != &config) {
+ memcpy(this, &config, sizeof(*this));
+ }
+ return *this;
+ }
};
// TODO(mgraczyk): Remove once all methods that use ChannelLayout are gone.
« no previous file with comments | « webrtc/modules/audio_processing/aec3/suppression_gain_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698