[alsa-devel] period_time in slave definition
Pavel Hofman
pavel.hofman at ivitera.com
Tue Mar 1 10:07:44 CET 2011
Jaroslav Kysela napsal(a):
> 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
>
Well, still I do not understand why we are talking about the plug
plugin, when I am trying to redefine the slave via pcm_slave. The
documentation at
http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html says the
pcm_slave can define period_time and buffer_time, while a slightly
modified example from the wiki page fails:
pcm_slave.slave_rate44100Hz {
pcm "hw:0,0"
rate 44100
---> period_time 1024
}
pcm.rate44100Hz {
type plug
slave slave_rate44100Hz
}
How does the slave definition relate to the plug plugin? Sorry for these
basics but I am really trying to understand that, so far no success.
Thanks a lot.
Pavel.
More information about the Alsa-devel
mailing list