summaryrefslogtreecommitdiffstats
path: root/libaf/af_equalizer.c
diff options
context:
space:
mode:
Diffstat (limited to 'libaf/af_equalizer.c')
-rw-r--r--libaf/af_equalizer.c40
1 files changed, 20 insertions, 20 deletions
diff --git a/libaf/af_equalizer.c b/libaf/af_equalizer.c
index 519d9aba4c..cdc0011cb7 100644
--- a/libaf/af_equalizer.c
+++ b/libaf/af_equalizer.c
@@ -32,13 +32,13 @@
#include "af.h"
#define L 2 // Storage for filter taps
-#define KM 10 // Max number of bands
+#define KM 10 // Max number of bands
#define Q 1.2247449 /* Q value for band-pass filters 1.2247=(3/2)^(1/2)
gives 4dB suppression @ Fc*2 and Fc/2 */
/* Center frequencies for band-pass filters
- The different frequency bands are:
+ The different frequency bands are:
nr. center frequency
0 31.25 Hz
1 62.50 Hz
@@ -55,7 +55,7 @@
// Maximum and minimum gain for the bands
#define G_MAX +12.0
-#define G_MIN -12.0
+#define G_MIN -12.0
// Data for specific instances of this filter
typedef struct af_equalizer_s
@@ -76,7 +76,7 @@ static void bp2(float* a, float* b, float fc, float q){
a[0] = (1.0 + C) * cos(th);
a[1] = -1 * C;
-
+
b[0] = (1.0 - C)/2.0;
b[1] = -1.0050;
}
@@ -84,30 +84,30 @@ static void bp2(float* a, float* b, float fc, float q){
// Initialization and runtime control
static int control(struct af_instance_s* af, int cmd, void* arg)
{
- af_equalizer_t* s = (af_equalizer_t*)af->setup;
+ af_equalizer_t* s = (af_equalizer_t*)af->setup;
switch(cmd){
case AF_CONTROL_REINIT:{
int k =0, i =0;
float F[KM] = CF;
-
+
s->gain_factor=0.0;
// Sanity check
if(!arg) return AF_ERROR;
-
+
af->data->rate = ((af_data_t*)arg)->rate;
af->data->nch = ((af_data_t*)arg)->nch;
af->data->format = AF_FORMAT_FLOAT_NE;
af->data->bps = 4;
-
+
// Calculate number of active filters
s->K=KM;
while(F[s->K-1] > (float)af->data->rate/2.2)
s->K--;
-
+
if(s->K != KM)
- mp_msg(MSGT_AFILTER, MSGL_INFO, "[equalizer] Limiting the number of filters to"
+ mp_msg(MSGT_AFILTER, MSGL_INFO, "[equalizer] Limiting the number of filters to"
" %i due to low sample rate.\n",s->K);
// Generate filter taps
@@ -116,7 +116,7 @@ static int control(struct af_instance_s* af, int cmd, void* arg)
// Calculate how much this plugin adds to the overall time delay
af->delay = 2 * af->data->nch * af->data->bps;
-
+
// Calculate gain factor to prevent clipping at output
for(k=0;k<AF_NCH;k++)
{
@@ -127,24 +127,24 @@ static int control(struct af_instance_s* af, int cmd, void* arg)
}
s->gain_factor=log10(s->gain_factor + 1.0) * 20.0;
-
+
if(s->gain_factor > 0.0)
{
s->gain_factor=0.1+(s->gain_factor/12.0);
}else{
s->gain_factor=1;
}
-
+
return af_test_output(af,arg);
}
case AF_CONTROL_COMMAND_LINE:{
float g[10]={0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0};
int i,j;
- sscanf((char*)arg,"%f:%f:%f:%f:%f:%f:%f:%f:%f:%f", &g[0], &g[1],
+ sscanf((char*)arg,"%f:%f:%f:%f:%f:%f:%f:%f:%f:%f", &g[0], &g[1],
&g[2], &g[3], &g[4], &g[5], &g[6], &g[7], &g[8] ,&g[9]);
for(i=0;i<AF_NCH;i++){
for(j=0;j<KM;j++){
- ((af_equalizer_t*)af->setup)->g[i][j] =
+ ((af_equalizer_t*)af->setup)->g[i][j] =
pow(10.0,clamp(g[j],G_MIN,G_MAX)/20.0)-1.0;
}
}
@@ -178,7 +178,7 @@ static int control(struct af_instance_s* af, int cmd, void* arg)
return AF_UNKNOWN;
}
-// Deallocate memory
+// Deallocate memory
static void uninit(struct af_instance_s* af)
{
if(af->data)
@@ -191,12 +191,12 @@ static void uninit(struct af_instance_s* af)
static af_data_t* play(struct af_instance_s* af, af_data_t* data)
{
af_data_t* c = data; // Current working data
- af_equalizer_t* s = (af_equalizer_t*)af->setup; // Setup
+ af_equalizer_t* s = (af_equalizer_t*)af->setup; // Setup
uint32_t ci = af->data->nch; // Index for channels
uint32_t nch = af->data->nch; // Number of channels
while(ci--){
- float* g = s->g[ci]; // Gain factor
+ float* g = s->g[ci]; // Gain factor
float* in = ((float*)c->audio)+ci;
float* out = ((float*)c->audio)+ci;
float* end = in + c->len/4; // Block loop end
@@ -205,7 +205,7 @@ static af_data_t* play(struct af_instance_s* af, af_data_t* data)
register int k = 0; // Frequency band index
register float yt = *in; // Current input sample
in+=nch;
-
+
// Run the filters
for(;k<s->K;k++){
// Pointer to circular buffer wq
@@ -218,7 +218,7 @@ static af_data_t* play(struct af_instance_s* af, af_data_t* data)
wq[1] = wq[0];
wq[0] = w;
}
- // Calculate output
+ // Calculate output
*out=yt*s->gain_factor;
out+=nch;
}