The sys->mute variable is not initialized, causing the volume increase/decrease commants to possibly fail (depending on its initial value).
The sys->volume is set by the VolumeChanged() call-back upon success of the sio_onvol() call, but it's better style to initialize it as well (in case sio_onvol() fails). As we're at it, remove the extra aout_MuteReport() call added by the previous commit. OK? Index: Makefile =================================================================== RCS file: /cvs/ports/x11/vlc/Makefile,v retrieving revision 1.279 diff -u -p -r1.279 Makefile --- Makefile 7 Feb 2025 15:19:46 -0000 1.279 +++ Makefile 11 Feb 2025 11:57:46 -0000 @@ -9,7 +9,7 @@ CATEGORIES= x11 SITES= https://download.videolan.org/pub/videolan/vlc/${V}/ EXTRACT_SUFX= .tar.xz REVISION-jack= 0 -REVISION-main= 1 +REVISION-main= 2 USE_NOBTCFI= Yes Index: patches/patch-modules_audio_output_sndio_c =================================================================== RCS file: /cvs/ports/x11/vlc/patches/patch-modules_audio_output_sndio_c,v retrieving revision 1.7 diff -u -p -r1.7 patch-modules_audio_output_sndio_c --- patches/patch-modules_audio_output_sndio_c 7 Feb 2025 15:19:46 -0000 1.7 +++ patches/patch-modules_audio_output_sndio_c 11 Feb 2025 11:57:46 -0000 @@ -13,20 +13,29 @@ Index: modules/audio_output/sndio.c sys->started = 0; sys->delay = 0; sio_start (sys->hdl); -@@ -276,6 +276,8 @@ static int VolumeSet (audio_output_t *aout, float fvol +@@ -276,6 +276,7 @@ static int VolumeSet (audio_output_t *aout, float fvol if (!sys->mute && !sio_setvol (sys->hdl, volume)) return -1; sys->volume = volume; + aout_VolumeReport (aout, (float)sys->volume / SIO_MAXVOL); -+ aout_MuteReport (aout, sys->volume == 0); return 0; } -@@ -287,6 +289,7 @@ static int MuteSet (audio_output_t *aout, bool mute) +@@ -287,6 +288,7 @@ static int MuteSet (audio_output_t *aout, bool mute) return -1; sys->mute = mute; + aout_MuteReport (aout, mute); return 0; + } + +@@ -300,7 +302,8 @@ static int Open (vlc_object_t *obj) + aout->sys = sys; + aout->start = Start; + aout->stop = Stop; +- /* FIXME: set volume/mute here */ ++ sys->mute = 0; ++ sys->volume = SIO_MAXVOL; + return VLC_SUCCESS; }