VLC 2.0+ (Linux): When Pulse Audio output is selected, Volume control should change local volume, not global ALSA volume
When using VLC version 2.0 and Pulse Audio output plugin is selected in Audio, the main Volume control of VLC application should change local Pulse volume (for VLC application).
VLC volume control should also be bound to local Pulse volume and react when it reacts due to external changes (PAVUControl for example). I think this is automatic, once application binds itself correctly to Pulse.
HOWEVER currently, it modifies ALSA Master volume control.
Although this is same as when using ALSA Plugin as output, this brings chaos when in PulseAudio enabled environiment.
PulseAudio, when installed, takes complete control over ALSA volumes. The only changeable controls from userland are:
- Pulse Main Volume, global volume for all applications
- Pulse Local Application volume, which every application gets when it opens output sink.
When not using Pulse controls and trying to control ALSA Master instead, as of now, VLC starts to affect global volume. ALSA Master is also, although overwatched by Pulse, is not bound to Pulse Master. As a result, ALSA Master changes by VLC make ALL applications:
- increase or decrease their volume
- start with low/very high volume
- songs will play with very low volume via VLC or similar players
This happens until ALSA Master volume is restored manually by terms of "alsamixer -c 0"
Because this ALSA Master volume is supposed to be ignored when using Pulse, yet it affects everything, the user cannot usually understand the situation and why it happens - it looks like erratic VLC volume behaviour to him.
This is global issue, any sound sample will be sufficient to experience this.
This is defect, because current logic to change volume damages global volume output levels.
Steps to reproduce: Any distribution using Pulse Audio VLC (I use 2.0), output set to Pulse Audio, no sound normalization Open two terminals, place them beneath. In both execute : alsamixer. In one open the PULSE MASTER/DEFAULT (F6), in another open ALSA/Spefic card you have (F6). -- first will be Pulse Audio master channel, second - card raw mixers.
Open Two instances of Pulse Volume Control. One - Select Application output Tab. Other - Select Card output.
Now open VLC, and play any audio file.
- Move VLC volume control down. You will notice ALSA Master moves too - VLC incorrectly changes ALSA Master. Pulse Master will follow, if ALSA Master is beyond 100%.
- Move ALSA Master in terminal down, you will notice VLC volume completely ignores the situation.
- Move VLC volume control down, moving ALSA Master down then close VLC. You will notice, Pulse does not change ALSA master back, resulting in low volume.