b_var_mute = var_GetBool( p_object, "volume-muted");
- const bool b_unmute_condition = ( /* Also unmute on increments */
+ const bool b_unmute_condition = ( b_var_mute
+ && ( /* Unmute: on increments */
( action == INCREMENT_VOLUME )
|| /* On explicit unmute */
- ( ( action == SET_MUTE ) && ( b_var_mute && !b_mute ) )
+ ( ( action == SET_MUTE ) && !b_mute )
|| /* On toggle from muted */
- ( ( action == TOGGLE_MUTE ) && b_var_mute ) );
+ ( action == TOGGLE_MUTE )
+ ));
const bool b_mute_condition = ( !b_var_mute
&& ( /* explicit */
( action == TOGGLE_MUTE )
));
+ /* If muting or unmuting when play hasn't started */
+ if ( action == SET_MUTE && !b_unmute_condition && !b_mute_condition )
+ {
+ if ( p_aout )
+ {
+ aout_unlock_volume( p_aout );
+ vlc_object_release( p_aout );
+ }
+ return i_result;
+ }
+
/* On UnMute */
if ( b_unmute_condition )
{
{
aout_instance_t *p_aout = findAout( p_this );
- if( AoutChangeFilterString( p_this, p_aout, "audio-filter", psz_name, b_add ) )
+ if( aout_ChangeFilterString( p_this, p_aout, "audio-filter", psz_name, b_add ) )
{
if( p_aout )
AoutInputsMarkToRestart( p_aout );