[gst-devel] [PATCH] [BUGFIX] Add PCM as master fall back for cards that do not have 'Master' mixer

Jerone Young jerone at gmail.com
Wed Jan 2 20:53:34 CET 2008


Is there any feedback on this patch?  Can it be included in the
gstreamer source so this issue is resolved.

On Dec 26, 2007 4:24 PM, Jerone Young <jerone at gmail.com> wrote:
> This patch fixes issue with ALSA drivers that enable sound cards that do not
> have a hardware 'Master' mixer. Instead on these cards there is only PCM as
> the master. This patch adds PCM as a fall back if 'Master' nor 'Front' mixers
> are found.
>
>
> The problem being caused is that tools such as gnome-volume-control
> & gnome-control-center are looking for a master they identify the microphone
> and not PCM. This is demonstrated on the Lenovo Thinkad T61 & X61 using AD1984
> chipset (using Intel HDA driver ALSA driver). This problem has also
> been seen a Sony Vaio S4XP.
>
> I've tested this patch on my Thinkpad T61 and it works perfect.
>
> Bugzillas reporting this issue are:
>
> https://bugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/174292
> https://bugzilla.redhat.com/show_bug.cgi?id=344911
>
>
> Signed-off-by: Jerone Young <jerone at gmail.com>
>
> diff -r 52cc0d2f47c2 ext/alsa/gstalsamixer.c
> --- a/ext/alsa/gstalsamixer.c   Wed Dec 26 16:02:08 2007 -0600
> +++ b/ext/alsa/gstalsamixer.c   Wed Dec 26 16:05:21 2007 -0600
> @@ -154,6 +154,16 @@ gst_alsa_mixer_find_master_mixer (GstAls
>      element = snd_mixer_elem_next (element);
>    }
>
> +  /*  If not, check if we have a playback mixer labelled as 'PCM' */
> +  element = snd_mixer_first_elem (handle);
> +  for (i = 0; i < count; i++) {
> +    if (snd_mixer_selem_has_playback_volume (element) &&
> +        strcmp (snd_mixer_selem_get_name (element), "PCM") == 0) {
> +      return element;
> +    }
> +    element = snd_mixer_elem_next (element);
> +  }
> +
>    /* If not, check if we have a playback mixer with both volume and switch */
>    element = snd_mixer_first_elem (handle);
>    for (i = 0; i < count; i++) {
>




More information about the gstreamer-devel mailing list