[alsa-devel] amixer cget :Assertion `ctl && info && (info->id.name[0] || info->id.numid)' failed. Aborted
Takashi Iwai
tiwai at suse.de
Wed Oct 5 09:46:19 CEST 2011
At Wed, 5 Oct 2011 15:25:44 +0800,
Raymond Yau wrote:
>
> 2011/10/3 Takashi Iwai <tiwai at suse.de>:
> > At Sat, 1 Oct 2011 11:30:44 +0800,
> > Raymond Yau wrote:
> >>
> >> There is assertion when specify iface=PCM or iface=PCM,name='' when
> >> using amixer -c0 cget
> >>
> >> according to the synthax
> >>
> >> [[iface=<iface>,][name='name',][index=<index>,][device=<device>,][subdevice=<subdevice>]]|[numid=<numid>]
> >>
> >>
> >> amixer -c0 cget iface=PCM
> >> amixer: control.c:258: snd_ctl_elem_info: Assertion `ctl && info &&
> >> (info->id.name[0] || info->id.numid)' failed.
> >> Aborted
> >>
> >> amixer -c0 cget iface=PCM,name=''
> >> amixer: control.c:258: snd_ctl_elem_info: Assertion `ctl && info &&
> >> (info->id.name[0] || info->id.numid)' failed.
> >> Aborted
> >
> > So, the empty string isn't checked before assert(). It's bad.
> > It must be easy to fix. Care to create and send a patch?
> >
> >
>
> The syntax seem also wrong.
>
> [[iface=<iface>,][name='name',][index=<index>,][device=<device>,][subdevice=subdevice>]]|[numid=<numid>]
>
>
> it should be
> [numid=<numid>] |
> [[iface=<iface>,name='name'][,index=<index>][,device=<device>]] |
> [[iface=<iface>,name='name'][,device=<device>][,subdevice=<subdevice>]]
>
> since you cannot specify index and subdevice at the same time
The index and subdevice are different things.
Typically, the index is set > 0 when multiple elements with the same
iface and name are present. The subdevice is rather specification of
the device itself, e.g. PCM substream number.
Takashi
More information about the Alsa-devel
mailing list