X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Faudio_filter%2Fequalizer.c;h=e1cb2969b094d4106f748c175bcb3e55fdcaf4a2;hb=dbbb4fad5a66c8c5499c3631a08440ab572b3c53;hp=c4226aa3499406074e8cfe2e932812a37ee94e0c;hpb=32596ea810730f1d995ed7cb023de64cf1da6047;p=vlc diff --git a/modules/audio_filter/equalizer.c b/modules/audio_filter/equalizer.c index c4226aa349..e1cb2969b0 100644 --- a/modules/audio_filter/equalizer.c +++ b/modules/audio_filter/equalizer.c @@ -153,28 +153,9 @@ static int TwoPassCallback( vlc_object_t *, char const *, vlc_value_t, static int Open( vlc_object_t *p_this ) { filter_t *p_filter = (filter_t *)p_this; - filter_sys_t *p_sys; - - if( p_filter->fmt_in.audio.i_format != VLC_CODEC_FL32 || - p_filter->fmt_out.audio.i_format != VLC_CODEC_FL32 ) - { - p_filter->fmt_in.audio.i_format = VLC_CODEC_FL32; - p_filter->fmt_out.audio.i_format = VLC_CODEC_FL32; - msg_Warn( p_filter, "bad input or output format" ); - return VLC_EGENERIC; - } - if ( !AOUT_FMTS_SIMILAR( &p_filter->fmt_in.audio, &p_filter->fmt_out.audio ) ) - { - memcpy( &p_filter->fmt_out.audio, &p_filter->fmt_in.audio, - sizeof(audio_sample_format_t) ); - msg_Warn( p_filter, "input and output formats are not similar" ); - return VLC_EGENERIC; - } - - p_filter->pf_audio_filter = DoWork; /* Allocate structure */ - p_sys = p_filter->p_sys = malloc( sizeof( *p_sys ) ); + filter_sys_t *p_sys = p_filter->p_sys = malloc( sizeof( *p_sys ) ); if( !p_sys ) return VLC_ENOMEM; @@ -186,6 +167,10 @@ static int Open( vlc_object_t *p_this ) return VLC_EGENERIC; } + p_filter->fmt_in.audio.i_format = VLC_CODEC_FL32; + p_filter->fmt_out.audio = p_filter->fmt_in.audio; + p_filter->pf_audio_filter = DoWork; + return VLC_SUCCESS; } @@ -232,6 +217,17 @@ typedef struct } eqz_config_t; +/* The frequency tables */ +static const float f_vlc_frequency_table_10b[EQZ_BANDS_MAX] = +{ + 60, 170, 310, 600, 1000, 3000, 6000, 12000, 14000, 16000, +}; + +static const float f_iso_frequency_table_10b[EQZ_BANDS_MAX] = +{ + 31.25, 62.5, 125, 250, 500, 1000, 2000, 4000, 8000, 16000, +}; + /* Equalizer coefficient calculation function based on equ-xmms */ static void EqzCoeffs( int i_rate, float f_octave_percent, bool b_use_vlc_freqs,