[alsa-devel] Support for snd_pcm_link() on the rate plugin

Christian Gruber christian.gruber at voiceinterconnect.de
Mon Aug 10 14:48:11 CEST 2015


Dear ALSA community,

I have a question regarding the usage of the function snd_pcm_link() on the rate plugin.

As can be seen from its implementation (see pcm.c, line 1368), the function snd_pcm_link() 
calls the fast_op "link" of the first pcm device/plugin to be linked, which is a function 
pointer, whose destination depends on the type of pcm device/plugin to be linked.

If the device is a HW-device, the function snd_pcm_hw_link() is called for instance (see 
pcm_hw.c). Several other plugins use the generic function snd_pcm_generic_link() (see 
pcm_generic.c, line 212), which forwards the function call to their slave devices/plugins, 
e.g. the plugins mmap_emul, linear, lfloat, mulaw, alaw, route, etc.

The rate plugin instead does not support snd_pcm_link(), since the function pointer "link" 
is not assigned in the definition of snd_pcm_rate_fast_ops (see pcm_rate.c, line 1153).

Why does the rate plugin not support snd_pcm_link()? Is their any reason to not use the 
generic function snd_pcm_generic_link() within the rate plugin? If yes, what's the reason 
for it?


Thanks in advance for answering this question,

Christian



More information about the Alsa-devel mailing list