[alsa-devel] Missing snd_pcm_link() for the rate plugin
Dear ALSA community,
does anybody know, why the rate plugin does not support the snd_pcm_link() function?
As I can see from the ALSA-Lib source code, snd_pcm_link() calls the fast_op "link", 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 for instance, the function snd_pcm_hw_link() is called. Several other plugins (e.g. mmap_emul, linear, lfloat, mulaw, alaw, route) use the generic function snd_pcm_generic_link(), which forwards the function call to their slave devices/plugins.
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.
Is their any reason to not use the generic function snd_pcm_generic_link() within the rate plugin?
Thanks in advance for answering this question,
Christian
On Fri, 11 Sep 2015 09:42:24 +0200, Christian Gruber wrote:
Dear ALSA community,
does anybody know, why the rate plugin does not support the snd_pcm_link() function?
As I can see from the ALSA-Lib source code, snd_pcm_link() calls the fast_op "link", 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 for instance, the function snd_pcm_hw_link() is called. Several other plugins (e.g. mmap_emul, linear, lfloat, mulaw, alaw, route) use the generic function snd_pcm_generic_link(), which forwards the function call to their slave devices/plugins.
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.
Is their any reason to not use the generic function snd_pcm_generic_link() within the rate plugin?
I don't remember exactly any longer, but my guess is that the rate plugin has a tricky code to delay the actual start when the playback stream is started with less data than slave period size. But it might be a simpler reason: we forgot it. You can play with using snd_pcm_generic_link() & co. If it seems reliably working, we can add the hooks.
Takashi
participants (2)
-
Christian Gruber
-
Takashi Iwai