Rename APM Config DelayCorrection to ExtendedFilter
We use this Config struct for enabling/disabling Extended filter mode
in AEC. This change renames it to ExtendedFilter for readability
reasons. The corresponding media constraint is also renamed to
kExtendedFilterEchoCancellation.
The old Config is kept in parallel with the new during a transition
period. This is to avoid problems with API breakages. During this
period, if any of the two Configs are enabled, the extended filter
mode is engaged in APM. That is, the two Configs are combined with an
"OR" operation.
This change also renames experimental_aec in AudioOptions to extended_filter_aec.
BUG=4696
R=bjornv@webrtc.org, tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/54659004
Cr-Commit-Position: refs/heads/master@{#9378}
diff --git a/webrtc/modules/audio_processing/include/audio_processing.h b/webrtc/modules/audio_processing/include/audio_processing.h
index 8c3436d..a4dd049 100644
--- a/webrtc/modules/audio_processing/include/audio_processing.h
+++ b/webrtc/modules/audio_processing/include/audio_processing.h
@@ -37,10 +37,10 @@
class NoiseSuppression;
class VoiceDetection;
-// Use to enable the delay correction feature. This now engages an extended
-// filter mode in the AEC, along with robustness measures around the reported
-// system delays. It comes with a significant increase in AEC complexity, but is
-// much more robust to unreliable reported delays.
+// Use to enable the extended filter mode in the AEC, along with robustness
+// measures around the reported system delays. It comes with a significant
+// increase in AEC complexity, but is much more robust to unreliable reported
+// delays.
//
// Detailed changes to the algorithm:
// - The filter length is changed from 48 to 128 ms. This comes with tuning of
@@ -54,11 +54,19 @@
// the delay difference more heavily, and back off from the difference more.
// Adjustments force a readaptation of the filter, so they should be avoided
// except when really necessary.
+// TODO(henrik.lundin): Remove DelayCorrection once ExtendedFilter has
+// propagated through to all channels
+// (https://code.google.com/p/webrtc/issues/detail?id=4696).
struct DelayCorrection {
DelayCorrection() : enabled(false) {}
explicit DelayCorrection(bool enabled) : enabled(enabled) {}
bool enabled;
};
+struct ExtendedFilter {
+ ExtendedFilter() : enabled(false) {}
+ explicit ExtendedFilter(bool enabled) : enabled(enabled) {}
+ bool enabled;
+};
// Use to disable the reported system delays. By disabling the reported system
// delays the echo cancellation algorithm assumes the process and reverse