From dd6c9843dfaac34944c391437167d2401936ef30 Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Thu, 28 Feb 2008 16:28:41 +0000 Subject: A little bit of optimization in WSOLA git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1826 74dad513-b988-da41-8d7b-12977e46ad98 --- pjmedia/src/pjmedia/wsola.c | 45 +++++++++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 18 deletions(-) (limited to 'pjmedia/src') diff --git a/pjmedia/src/pjmedia/wsola.c b/pjmedia/src/pjmedia/wsola.c index 408dd340..6d3e5965 100644 --- a/pjmedia/src/pjmedia/wsola.c +++ b/pjmedia/src/pjmedia/wsola.c @@ -24,6 +24,7 @@ #define THIS_FILE "wsola.c" +//#undef PJ_HAS_FLOATING_POINT /* History size, in percentage of samples_per_frame */ #define HISTSZ (1.5) @@ -91,7 +92,17 @@ static short *find_pitch(short *frm, short *beg, short *end, double corr = 0; unsigned i; - for (i=0; i> WINDOW_BITS); - - assert((val>=0 && dst[i]>=0) || - (val<0 && dst[i]<0)); + dst[i] = (short)(((int)(l[i]) * (int)(w[count-1-i]) + + (int)(r[i]) * (int)(w[i])) >> WINDOW_BITS); } } @@ -210,16 +227,8 @@ static void overlapp_add_simple(short dst[], unsigned count, unsigned i; for (i=0; i= 0); - - val = (l[i] * stepdown + r[i] * (1-stepdown)); - dst[i] = (short)(val >> WINDOW_BITS); + dst[i]=(short)((l[i] * stepdown + r[i] * (1-stepdown)) >> WINDOW_BITS); stepdown -= step; - - assert((val>=0 && dst[i]>=0) || - (val<0 && dst[i]<0)); } } -- cgit v1.2.3