changeset 8674:93212da0032e

10l memory leak + bug fixes in ms to sample time conversion
author anders
date Tue, 31 Dec 2002 05:42:20 +0000
parents 4c0882ee0f4d
children 54c386615a70
files libaf/af.h libaf/af_comp.c libaf/af_gate.c libaf/af_pan.c libaf/af_tools.c
diffstat 5 files changed, 17 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/libaf/af.h	Tue Dec 31 02:37:36 2002 +0000
+++ b/libaf/af.h	Tue Dec 31 05:42:20 2002 +0000
@@ -187,9 +187,9 @@
    AF_OK if of and AF_ERROR if fail */
 int af_to_dB(int n, float* in, float* out, float k);
 /* Helper function used to convert from ms to sample time*/
-int af_from_ms(int n, float* in, float* out, int rate, float mi, float ma);
+int af_from_ms(int n, float* in, int* out, int rate, float mi, float ma);
 /* Helper function used to convert from sample time to ms */
-int af_to_ms(int n, float* in, float* out, int rate); 
+int af_to_ms(int n, int* in, float* out, int rate); 
 /* Helper function for testing the output format */
 int af_test_output(struct af_instance_s* af, af_data_t* out);
 
--- a/libaf/af_comp.c	Tue Dec 31 02:37:36 2002 +0000
+++ b/libaf/af_comp.c	Tue Dec 31 05:42:20 2002 +0000
@@ -26,8 +26,8 @@
   float time[AF_NCH];		// Forgetting factor for power estimate
   float	pow[AF_NCH];		// Estimated power level [dB]
   float	tresh[AF_NCH];		// Threshold [dB]
-  float	attack[AF_NCH];		// Attack time [ms]
-  float	release[AF_NCH];	// Release time [ms]
+  int	attack[AF_NCH];		// Attack time [ms]
+  int	release[AF_NCH];	// Release time [ms]
   float	ratio[AF_NCH];		// Compression ratio
 }af_comp_t;
 
--- a/libaf/af_gate.c	Tue Dec 31 02:37:36 2002 +0000
+++ b/libaf/af_gate.c	Tue Dec 31 05:42:20 2002 +0000
@@ -26,8 +26,8 @@
   float time[AF_NCH];		// Forgetting factor for power estimate
   float	pow[AF_NCH];		// Estimated power level [dB]
   float	tresh[AF_NCH];		// Threshold [dB]
-  float	attack[AF_NCH];		// Attack time [ms]
-  float	release[AF_NCH];	// Release time [ms]
+  int	attack[AF_NCH];		// Attack time [ms]
+  int	release[AF_NCH];	// Release time [ms]
   float	range[AF_NCH];		// Range level [dB]
 }af_gate_t;
 
--- a/libaf/af_pan.c	Tue Dec 31 02:37:36 2002 +0000
+++ b/libaf/af_pan.c	Tue Dec 31 05:42:20 2002 +0000
@@ -113,6 +113,8 @@
 // Deallocate memory 
 static void uninit(struct af_instance_s* af)
 {
+  if(af->data->audio)
+    free(af->data->audio);
   if(af->data)
     free(af->data);
   if(af->setup)
--- a/libaf/af_tools.c	Tue Dec 31 02:37:36 2002 +0000
+++ b/libaf/af_tools.c	Tue Dec 31 05:42:20 2002 +0000
@@ -29,7 +29,7 @@
   if(!in || !out) 
     return AF_ERROR;
 
-  for(i=0;i<AF_NCH;i++){
+  for(i=0;i<n;i++){
     if(in[i] == 0.0)
       out[i]=-200.0;
     else
@@ -38,30 +38,30 @@
   return AF_OK;
 }
 
-/* Convert from ms to sample time*/
-inline int af_from_ms(int n, float* in, float* out, int rate, float mi, float ma)
+/* Convert from ms to sample time */
+inline int af_from_ms(int n, float* in, int* out, int rate, float mi, float ma)
 {
   int i = 0; 
   // Sanity check
   if(!in || !out) 
     return AF_ERROR;
 
-  for(i=0;i<AF_NCH;i++)
-    out[i]=clamp(in[i],ma,mi);
+  for(i=0;i<n;i++)
+    out[i]=(int)((float)rate * clamp(in[i],mi,ma)/1000.0);
 
   return AF_OK;
 }
 
 /* Convert from sample time to ms */
-inline int af_to_ms(int n, float* in, float* out, int rate)
+inline int af_to_ms(int n, int* in, float* out, int rate)
 {
   int i = 0; 
   // Sanity check
-  if(!in || !out) 
+  if(!in || !out || !rate) 
     return AF_ERROR;
 
-  for(i=0;i<AF_NCH;i++)
-    out[i]=in[i];
+  for(i=0;i<n;i++)
+    out[i]=1000.0 * (float)in[i]/((float)rate);
   
   return AF_OK;
 }