X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Faudio_output%2Fintf.c;h=3476ad3ce89ad63be192d00f7e923e45ab37e0c6;hb=df6df8dfcafc55e31164d6b2a179321b36f317f4;hp=95e20b880b7802cbdd49f069132a86691ab5b710;hpb=09d375d4451c139097d95e152e3da09352ae381e;p=vlc diff --git a/src/audio_output/intf.c b/src/audio_output/intf.c index 95e20b880b..3476ad3ce8 100644 --- a/src/audio_output/intf.c +++ b/src/audio_output/intf.c @@ -79,7 +79,7 @@ int __aout_VolumeGet( vlc_object_t * p_object, audio_volume_t * pi_volume ) } aout_lock_mixer( p_aout ); - if ( !p_aout->mixer.b_error ) + if ( p_aout->p_mixer ) { i_result = p_aout->output.pf_volume_get( p_aout, pi_volume ); } @@ -110,11 +110,12 @@ int __aout_VolumeSet( vlc_object_t * p_object, audio_volume_t i_volume ) return VLC_SUCCESS; int i_result = VLC_SUCCESS; - aout_lock_mixer( p_aout ); - if ( !p_aout->mixer.b_error ) + aout_lock_mixer( p_aout ); + aout_lock_input_fifos( p_aout ); + if ( p_aout->p_mixer ) i_result = p_aout->output.pf_volume_set( p_aout, i_volume ); - + aout_unlock_input_fifos( p_aout ); aout_unlock_mixer( p_aout ); var_SetBool( p_aout, "intf-change", true ); @@ -285,15 +286,16 @@ static int aout_Restart( aout_instance_t * p_aout ) return -1; } - /* Lock all inputs. */ - aout_lock_input_fifos( p_aout ); - for ( i = 0; i < p_aout->i_nb_inputs; i++ ) { aout_lock_input( p_aout, p_aout->pp_inputs[i] ); + aout_lock_input_fifos( p_aout ); aout_InputDelete( p_aout, p_aout->pp_inputs[i] ); + aout_unlock_input_fifos( p_aout ); } + /* Lock all inputs. */ + aout_lock_input_fifos( p_aout ); aout_MixerDelete( p_aout ); /* Re-open the output plug-in. */