--- mec2.h.0002820 2005-07-28 00:26:18.000000000 +0930 +++ mec2.h.0004823 2005-07-28 00:33:21.000000000 +0930 @@ -430,17 +430,43 @@ #ifndef NO_ECHO_SUPPRESSOR #ifdef AGGRESSIVE_SUPPRESSOR - if ((ec->HCNTR_d < AGGRESSIVE_HCNTR) && (ec->Ly_i > (ec->Lu_i << 1))) { - for (k=0; k < RESIDUAL_SUPRESSION_PASSES; k++) { - 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) { + if ((ec->Ly_i/(ec->Lu_i + 1)) > DEFAULT_SUPPR_I) { + for (k=0; k < RESIDUAL_SUPRESSION_PASSES; k++) { + u = u * (ec->Lu_i >> DEFAULT_SIGMA_LU_I) / ((ec->Ly_i >> (DEFAULT_SIGMA_LY_I + 2)) + 1); + } +#ifdef MEC2_STATS_DETAILED + printk( KERN_INFO "correcting frame with ec->Ly_i %9d ec->Lu_i %9d expression %d\n", ec->Ly_i, ec->Lu_i, (ec->Ly_i/(ec->Lu_i + 1))); +#endif +#ifdef MEC2_STATS + ++ec->cntr_residualcorrected_frames; +#endif + } +#ifdef MEC2_STATS + else { + ++ec->cntr_residualcorrected_framesskipped; + } +#endif } + } + else { +#endif + if ((ec->HCNTR_d < AGGRESSIVE_HCNTR) && (ec->Ly_i > (ec->Lu_i << 1))) { + for (k=0; k < RESIDUAL_SUPRESSION_PASSES; k++) { + u = u * (ec->Lu_i >> DEFAULT_SIGMA_LU_I) / ((ec->Ly_i >> (DEFAULT_SIGMA_LY_I)) + 1); + } #ifdef MEC2_STATS_DETAILED - printk( KERN_INFO "aggresively correcting frame with ec->Ly_i %9d ec->Lu_i %9d expression %d\n", ec->Ly_i, ec->Lu_i, (ec->Ly_i/(ec->Lu_i + 1))); + printk( KERN_INFO "aggresively correcting frame with ec->Ly_i %9d ec->Lu_i %9d expression %d\n", ec->Ly_i, ec->Lu_i, (ec->Ly_i/(ec->Lu_i + 1))); #endif #ifdef MEC2_STATS - ++ec->cntr_residualcorrected_frames; + ++ec->cntr_residualcorrected_frames; #endif + } +#ifdef AGGRESSIVE_TIMELIMIT } +#endif #else if (ec->HCNTR_d == 0) { if ((ec->Ly_i/(ec->Lu_i + 1)) > DEFAULT_SUPPR_I) {