From: Laurent Aimar Date: Wed, 9 Jul 2008 20:40:05 +0000 (+0000) Subject: Fixed selection of simple mixer (close #1688) X-Git-Tag: 0.9.0-test2~87 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=dc8472ea2c11bc4d6c1cbba670a4d2dde595401e;p=vlc Fixed selection of simple mixer (close #1688) This mixer can only downsample. Let trivial mixer handles Dual-Mono -> Stereo|Stereo-left|Stereo-right|Stereo-reverse. (Please double check on your multiple channels sources) --- diff --git a/modules/audio_filter/channel_mixer/simple.c b/modules/audio_filter/channel_mixer/simple.c index ba6580d39a..f95ce67f46 100644 --- a/modules/audio_filter/channel_mixer/simple.c +++ b/modules/audio_filter/channel_mixer/simple.c @@ -282,13 +282,13 @@ static block_t *Filter( filter_t *p_filter, block_t *p_block ) *****************************************************************************/ static bool IsSupported( const audio_format_t *p_input, const audio_format_t *p_output ) { - if ( (p_input->i_physical_channels - == p_output->i_physical_channels - && p_input->i_original_channels - == p_output->i_original_channels) - || p_input->i_format != p_output->i_format - || p_input->i_rate != p_output->i_rate - || p_input->i_format != VLC_FOURCC('f','l','3','2') ) + if( p_input->i_format != VLC_FOURCC('f','l','3','2') || + p_input->i_format != p_output->i_format || + p_input->i_rate != p_output->i_rate ) + return false; + + if( p_input->i_physical_channels == p_output->i_physical_channels && + p_input->i_original_channels == p_output->i_original_channels ) { return false; } @@ -308,5 +308,11 @@ static bool IsSupported( const audio_format_t *p_input, const audio_format_t *p_ { return false; } + + /* Only if we downmix */ + if( aout_FormatNbChannels( p_input ) <= aout_FormatNbChannels( p_output ) ) + return false; + return true; } +