[alsa-devel] amixer cget :Assertion `ctl && info && (info->id.name[0] || info->id.numid)' failed. Aborted

Jaroslav Kysela perex at perex.cz
Wed Oct 5 09:59:42 CEST 2011


Date 5.10.2011 09:46, Takashi Iwai wrote:
> 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.

The correct syntax should be:

[[iface=<iface>,]name='name'[,index=<index>,][device=<device>,][subdevice=subdevice>]]
OR numid=<numid>

The name or numid is mandatory.

					Jaroslav

-- 
Jaroslav Kysela <perex at perex.cz>
Linux Kernel Sound Maintainer
ALSA Project; Red Hat, Inc.


More information about the Alsa-devel mailing list