X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Faudio_filter%2Fequalizer.c;h=e0cb1155a89d73f637cb9044bad271f7e047be2b;hb=0591a1d3fec932940bd7d1bf46b792acf7eea702;hp=2433b708d5adc8791ace4c5e677d6ecc2ce77338;hpb=906b68fe0317ff981addd5e9bfe4a5fc5efde6c3;p=vlc diff --git a/modules/audio_filter/equalizer.c b/modules/audio_filter/equalizer.c index 2433b708d5..e0cb1155a8 100644 --- a/modules/audio_filter/equalizer.c +++ b/modules/audio_filter/equalizer.c @@ -1,7 +1,7 @@ /***************************************************************************** * equalizer.c: ***************************************************************************** - * Copyright (C) 2004 VideoLAN + * Copyright (C) 2004 the VideoLAN team * $Id$ * * Authors: Laurent Aimar @@ -69,7 +69,7 @@ vlc_module_begin(); set_subcategory( SUBCAT_AUDIO_AFILTER ); add_string( "equalizer-preset", "flat", NULL, PRESET_TEXT, - PRESET_LONGTEXT, VLC_TRUE ); + PRESET_LONGTEXT, VLC_FALSE ); change_string_list( preset_list, preset_list_text, 0 ); add_string( "equalizer-bands", NULL, NULL, BANDS_TEXT, BANDS_LONGTEXT, VLC_TRUE ); @@ -136,16 +136,26 @@ static int Open( vlc_object_t *p_this ) { aout_filter_t *p_filter = (aout_filter_t *)p_this; aout_filter_sys_t *p_sys; + vlc_bool_t b_fit = VLC_TRUE; if( p_filter->input.i_format != VLC_FOURCC('f','l','3','2' ) || p_filter->output.i_format != VLC_FOURCC('f','l','3','2') ) { + b_fit = VLC_FALSE; + p_filter->input.i_format = VLC_FOURCC('f','l','3','2'); + p_filter->output.i_format = VLC_FOURCC('f','l','3','2'); msg_Warn( p_filter, "Bad input or output format" ); - return VLC_EGENERIC; } if ( !AOUT_FMTS_SIMILAR( &p_filter->input, &p_filter->output ) ) { + b_fit = VLC_FALSE; + memcpy( &p_filter->output, &p_filter->input, + sizeof(audio_sample_format_t) ); msg_Warn( p_filter, "input and output formats are not similar" ); + } + + if ( ! b_fit ) + { return VLC_EGENERIC; } @@ -349,7 +359,8 @@ static int EqzInit( aout_filter_t *p_filter, int i_rate ) strstr( p_sys->psz_newbands, val2.psz_string ) ) || !*val2.psz_string ) { var_SetString( p_aout, "equalizer-bands", p_sys->psz_newbands ); - var_SetFloat( p_aout, "equalizer-preamp", p_sys->f_newpreamp ); + if( p_sys->f_newpreamp == p_sys->f_gamp ) + var_SetFloat( p_aout, "equalizer-preamp", p_sys->f_newpreamp ); } /* Add our own callbacks */