Index: mec2.h =================================================================== RCS file: /usr/cvsroot/zaptel/mec2.h,v retrieving revision 1.5 diff -u -r1.5 mec2.h --- mec2.h 24 Aug 2005 00:45:04 -0000 1.5 +++ mec2.h 24 Aug 2005 23:46:59 -0000 @@ -334,10 +334,21 @@ */ #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); +#ifdef AGGRESSIVE_TIMELIMIT /* This allows the aggressive suppressor to turn off after set amount of time */ + if (ec->i_d > AGGRESSIVE_TIMELIMIT ) { + 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); + } } + else { +#endif + 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); + } +#ifdef AGGRESSIVE_TIMELIMIT + } +#endif #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); Index: mec2_const.h =================================================================== RCS file: /usr/cvsroot/zaptel/mec2_const.h,v retrieving revision 1.2 diff -u -r1.2 mec2_const.h --- mec2_const.h 27 Jan 2003 05:52:53 -0000 1.2 +++ mec2_const.h 24 Aug 2005 23:46:59 -0000 @@ -21,5 +21,8 @@ #define RES_SUPR_FACTOR -20 #define AGGRESSIVE_HCNTR 160 /* 20ms */ +/* Only use agressive echo cancellation for this amount of time then go back to normal cancelation */ +/* #define AGGRESSIVE_TIMELIMIT 150000 */ /* 8 = 1ms */ + #endif /* _MEC2_CONST_H */