[Mplayer-cvslog] CVS: main/libao2 pl_eq.c,1.2,1.3

Atmosfear atmos4 at mplayerhq.hu
Sun Jun 16 03:44:45 CEST 2002


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




More information about the MPlayer-cvslog mailing list