Update of /cvsroot/mplayer/main/libao2 In directory mail:/var/tmp.root/cvs-serv30457/libao2 Modified Files: pl_eq.c Log Message: Fixed lround replacement, hopefully fast enough. Index: pl_eq.c =================================================================== RCS file: /cvsroot/mplayer/main/libao2/pl_eq.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- pl_eq.c 15 Jun 2002 23:31:58 -0000 1.2 +++ pl_eq.c 16 Jun 2002 01:44:33 -0000 1.3 @@ -89,16 +89,21 @@ return CONTROL_UNKNOWN; } +// return rounded 16bit int +static inline int16_t lround16(double n){ + return (int16_t)((n)>=0.0?(n)+0.5:(n)-0.5); +} + // 2nd order Band-pass Filter design void bp2(int16_t* a, int16_t* b, float fc, float q){ double th=2*3.141592654*fc; double C=(1 - tan(th*q/2))/(1 + tan(th*q/2)); - a[0] = (int16_t)( 16383.0 * (1 + C) * cos(th) + 0.5); - a[1] = (int16_t)(-16383.0 * C + 0.5); + a[0] = lround16( 16383.0 * (1 + C) * cos(th)); + a[1] = lround16(-16383.0 * C); - b[0] = (int16_t)(-16383.0 * (C - 1)/2 + 0.5); - b[1] = (int16_t)(-16383.0 * 1.0050 + 0.5); + b[0] = lround16(-16383.0 * (C - 1)/2); + b[1] = lround16(-16383.0 * 1.0050); } // empty buffers