From 67d4e56dc8a365871c3dca4f04fcf8b9c9f47ee6 Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Thu, 23 Nov 2006 10:19:46 +0000 Subject: Updated Speex to their latest SVN (1.2-beta). AEC seems to work much better now and take less CPU, so I increased default tail length in PJSUA to 800ms. git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@823 74dad513-b988-da41-8d7b-12977e46ad98 --- pjmedia/src/pjmedia-codec/speex/lpc_spx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'pjmedia/src/pjmedia-codec/speex/lpc_spx.c') diff --git a/pjmedia/src/pjmedia-codec/speex/lpc_spx.c b/pjmedia/src/pjmedia-codec/speex/lpc_spx.c index c465faea..fd5d3821 100644 --- a/pjmedia/src/pjmedia-codec/speex/lpc_spx.c +++ b/pjmedia/src/pjmedia-codec/speex/lpc_spx.c @@ -94,7 +94,7 @@ int p for (j = 0; j < i; j++) rr = SUB32(rr,MULT16_16(lpc[j],ac[i - j])); #ifdef FIXED_POINT - r = DIV32_16(rr,ADD16(error,16)); + r = DIV32_16(rr+PSHR32(error,1),ADD16(error,8)); #else r = rr/(error+.003*ac[0]); #endif @@ -103,11 +103,11 @@ int p for (j = 0; j < i>>1; j++) { spx_word16_t tmp = lpc[j]; - lpc[j] = MAC16_16_Q13(lpc[j],r,lpc[i-1-j]); - lpc[i-1-j] = MAC16_16_Q13(lpc[i-1-j],r,tmp); + lpc[j] = MAC16_16_P13(lpc[j],r,lpc[i-1-j]); + lpc[i-1-j] = MAC16_16_P13(lpc[i-1-j],r,tmp); } if (i & 1) - lpc[j] = MAC16_16_Q13(lpc[j],lpc[j],r); + lpc[j] = MAC16_16_P13(lpc[j],lpc[j],r); error = SUB16(error,MULT16_16_Q13(r,MULT16_16_Q13(error,r))); } -- cgit v1.2.3