summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xmec2.h7
-rwxr-xr-xmec2_const.h2
2 files changed, 8 insertions, 1 deletions
diff --git a/mec2.h b/mec2.h
index 36bc042..92cc011 100755
--- a/mec2.h
+++ b/mec2.h
@@ -330,9 +330,16 @@ static inline short echo_can_update(echo_can_state_t *ec, short iref, short isig
// check for residual error suppression
*/
#ifndef NO_ECHO_SUPPRESSOR
+#ifdef AGGRESSIVE_SUPPRESSOR
+ if ((ec->HCNTR_d < AGGRESSIVE_HCNTR) && (ec->Ly_i > (ec->Lu_i << 1))) {
+ u = u * (ec->Lu_i >> DEFAULT_SIGMA_LU_I) / ((ec->Ly_i >> (DEFAULT_SIGMA_LY_I)) + 1);
+ u = u * (ec->Lu_i >> DEFAULT_SIGMA_LU_I) / ((ec->Ly_i >> (DEFAULT_SIGMA_LY_I)) + 1);
+ }
+#else
if ((ec->HCNTR_d == 0) && ((ec->Ly_i/(ec->Lu_i + 1)) > DEFAULT_SUPPR_I)) {
u = u * (ec->Lu_i >> DEFAULT_SIGMA_LU_I) / ((ec->Ly_i >> (DEFAULT_SIGMA_LY_I + 2)) + 1);
}
+#endif
#endif
#if 0
diff --git a/mec2_const.h b/mec2_const.h
index e4df09c..9c897f4 100755
--- a/mec2_const.h
+++ b/mec2_const.h
@@ -19,7 +19,7 @@
#define SUPPR_FLOOR -64
#define SUPPR_CEIL -24
#define RES_SUPR_FACTOR -20
-
+#define AGGRESSIVE_HCNTR 160 /* 20ms */
#endif /* _MEC2_CONST_H */