GNOME Bugzilla – Bug 677346
PulseAudio can't be "unmuted" correctly when Alsa is also enabled.
Last modified: 2013-07-17 16:08:04 UTC
Hi, I was tracking what I thought was a bug in xfce4-volumed at first but it turned out to be GStreamer related, but the code in GStreamer was pretty complicated to understand not knowing much about it. xfce4-volumed is just a helper to bind multimedia keys to perform actions like mute or volume up and down in XFCE. When the mute key is pressed, the output is muted via a call to gst_mixer_set_mute(). I was inspecting the relevant code in that application and it looks correct to me, so I used a little helper to check several properties of the available mixers in GStreamer. There were a couple although the relevant ones were 2: an ALSA one an a PulseAudio one, both being outputs and having a "master" track. Upon pressing the mute key and displaying the notification the volume was effectively muted and both mixers got the GST_MIXER_TRACK_MUTE flag active. Pressing the mute key again to return the volume to where it was, "unmute", the ALSA mixer was unmuted (GST_MIXER_TRACK_MUTE flag was false) but the PulseAudio mixer had that flag still true, and effectively being muted. The only way to unmute it was through pavucontrol (PulseAudio volume control application). After reading through the code and trying some things I decided to recompile Gstreamer -base and -base-plugins without ALSA support (--disable-alsa configure flag). When listing the mixers in GStreamer only PulseAudio ones where available (the output one and 2 input), and now the mute/unmute functionality works as expected. There was a commit in Gstreamer -good related to PulseAudio recently which fixed something mute related too but I recon it doesn't matter in this bug: http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=e7240413a7b678cc89c0b68cf15d68c7f14d921a
> Upon pressing the mute key and displaying the notification the volume was > effectively muted and both mixers got the GST_MIXER_TRACK_MUTE flag active. > > Pressing the mute key again to return the volume to where it was, "unmute", the > ALSA mixer was unmuted (GST_MIXER_TRACK_MUTE flag was false) but the PulseAudio > mixer had that flag still true, and effectively being muted. The only way to > unmute it was through pavucontrol (PulseAudio volume control application). So which mixer object/element would actually be operated on for the "unmute" action? The pulseaudio mixer element or the alsa mixer element? In any case, in 1.0 the GstMixer interface has been removed (without replacement), so this is somewhat obsolete, but if there's an easy fix for 0.10, that could of course still be committed.
This only applies to 0.10. Shall we close it ?
Yes