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@perex.cz Linux Kernel Sound Maintainer ALSA Project, Red Hat, Inc.