[gstreamer-bugs] [Bug 336075] New: ALSA emu10k1 mixer tracks are wrongly classified as playback tracks
bugzilla-daemon at bugzilla.gnome.org
Sun Mar 26 05:17:13 PST 2006
Do not reply to this via email (we are currently unable to handle email
responses and they get discarded). You can add comments to this bug at
GStreamer | gst-plugins | Ver: 0.10.x
Summary: ALSA emu10k1 mixer tracks are wrongly classified as
AssignedTo: gstreamer-bugs at lists.sourceforge.net
ReportedBy: viktor.peters at gmail.com
QAContact: gstreamer-bugs at lists.sourceforge.net
GNOME version: Unspecified
GNOME milestone: Unspecified
I have a Creative Audigy 1 Live!. Since GNOME 2.10 (or so) gnome-volume-control
aka gst-mixer classifies all capture mixer tracks as playback tracks. As a
result there are two PCM channels, two Microphone channels, and so on in the
This confuses the volume-control-applet, because I cannot select the right PCM
track of the two. If I select PCM it only controls the capture (because it was
added first to the track list?) but not the playback track.
So I decided to have a closer look at the gstreamer alsa plugin. I have written
a little utility, which outputs the results of the used alsa functions in
Here the output of the one problematic tracks:
In gstalsamixer.c:gst_alsa_mixer_ensure_track_list is a loop which adds all
alsa mixer tracks. In this loop the gst flags are initialized to:
gint flags = GST_MIXER_TRACK_OUTPUT;
Then there is an if-statement which uses snd_mixer_selem_has_capture_switch
to classify between playback and capture (I guess this is the meaning) and sets
flags to GST_MIXER_TRACK_INPUT, if snd_mixer_selem_has_capture_switch is true.
But as you can see in the output above ALSA reports has_capture_switch==false
for the PCM channel. The gst flags are never changed to GST_MIXER_TRACK_INPUT
at this point, thou this track can control both capture and playback volume.
At later point an if-statement uses snd_mixer_selem_has_capture_volume to
decide if the track should be added to the capture list. Since this is true for
the PCM channel a new gst mixer track is created:
track = gst_alsa_mixer_track_new (element, samename, i, channels, flags,
Here is the discrepancy: (gst) 'flags' is still GST_MIXER_TRACK_OUTPUT. ('alsa
flags' are set correctly to capture.)
Later a playback mixer track is added the same way. Therefore "duplicate" mixer
tracks are displayed in gst-mixer playback panel.
Configure bugmail: http://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the Gstreamer-bugs