From: Mark Michelson Date: Fri, 17 Feb 2012 16:04:24 +0000 (+0000) Subject: Revert change to translate.c as it has caused an infinite loop to occur in circumstances. X-Git-Tag: 1.8.11.0-rc1~28 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1ba154c100d97085f794ee3b7149752fb850b74b;p=thirdparty%2Fasterisk.git Revert change to translate.c as it has caused an infinite loop to occur in circumstances. git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@355721 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/main/translate.c b/main/translate.c index 75ed9cf81f..61b4a4686d 100644 --- a/main/translate.c +++ b/main/translate.c @@ -517,9 +517,12 @@ static void rebuild_matrix(int samples) /* Is x->y->z a better choice than x->z? * There are three conditions for x->y->z to be a better choice than x->z * 1. if there is no step directly between x->z then x->y->z is the best and only current option. - * 2. if x->y->z results in a more optimal sample rate conversion. */ + * 2. if x->y->z costs less and the sample rate conversion is no less optimal. + * 3. if x->y->z results in a more optimal sample rate conversion. */ if (!tr_matrix[x][z].step) { better_choice = 1; + } else if ((newcost < tr_matrix[x][z].cost) && (new_rate_change <= tr_matrix[x][z].rate_change)) { + better_choice = 1; } else if (new_rate_change < tr_matrix[x][z].rate_change) { better_choice = 1; } else {