[alsa-devel] period_time in slave definition

Jaroslav Kysela perex at perex.cz
Mon Feb 28 14:15:03 CET 2011


On Mon, 28 Feb 2011, Pavel Hofman wrote:

> Hi,
>
> According to
> http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html , my
> .asoundrc contains:
>
> pcm.test {
>        type plug
>        slave {
>                pcm "hw:0"
>                format "unchanged"
>                channels "unchanged"
>                rate "unchanged"
>                period_size 1024
>                buffer_size 4096
>        }
> }
>
>
> While pcm, format, channels, and rate are accepted, the period and
> buffer fields are refused:
>
> ALSA lib pcm.c:6811:(snd_pcm_slave_conf) Unknown field period_time

It's correct, pcm:plug does not support buffer modifiers. Look to 
"Automatic conversion plugin".

> I checked the source code and the keywords seem to be ok
>
> pcm.c:
> static const char *const names[SND_PCM_HW_PARAM_LAST_INTERVAL + 1] = {
> 	[SND_PCM_HW_PARAM_FORMAT] = "format",
> 	[SND_PCM_HW_PARAM_CHANNELS] = "channels",
> 	[SND_PCM_HW_PARAM_RATE] = "rate",
> 	[SND_PCM_HW_PARAM_PERIOD_TIME] = "period_time",
> 	[SND_PCM_HW_PARAM_PERIOD_SIZE] = "period_size",
> 	[SND_PCM_HW_PARAM_BUFFER_TIME] = "buffer_time",
> 	[SND_PCM_HW_PARAM_BUFFER_SIZE] = "buffer_size",
> 	[SND_PCM_HW_PARAM_PERIODS] = "periods"
> };

It's just a table to translate all possibilites between index and name. 
The plug plugins allow only this:

 	err = snd_pcm_slave_conf(root, slave, &sconf, 3,
 				 SND_PCM_HW_PARAM_FORMAT, SCONF_UNCHANGED, &sformat,
 				 SND_PCM_HW_PARAM_CHANNELS, SCONF_UNCHANGED, &schannels,
 				 SND_PCM_HW_PARAM_RATE, SCONF_UNCHANGED, &srate);

 					Jaroslav

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



More information about the Alsa-devel mailing list