[alsa-devel] External PCM IO Plugin development

Alexander Indenbaum alexander.indenbaum at gmail.com
Wed Apr 2 17:27:13 CEST 2008

Takashi & alsa-devel,

I am playing with embedded Linux box based on kernel 2.4.36. Our box
is equipped with proprietary chip which allows PCM playback using user
space DMA pool API.  My target is to enable audio playback for ALSA
clients by redirecting PCM stream into proprietary chip. I did a
little RTFM and with a lot of help from this list discovered that
fortunately ALSA expendable architecture allows such things as a part
of PCM External Plugin SDK.

So I downloaded and installed following ALSA 1.0.16 distribution components:
- driver configured with "./configure  --with-cards=seq-dummy,dummy
- lib configured with "./configure --with-pcm-plugins=all"

I looked at Jack IO plugin at plugins and started with skeleton plugin
of my own: pcm_sigma.c (attached).
I hope to redirect PCM into my plugin using following /etc/asound.conf
pcm.!default {
        type sigma

What I see when I fire ALSA client ( friefox with YouTube flash ) that ALSA
1. loads/links my module: ALSA lib dlmisc.c:51:(snd_dlopen) snd_dlopen
name = (/usr/lib/alsa-lib/libasound_module_pcm_sigma.so)
2. calls open interface of the module: _snd_pcm_sigma_open @ pcm_sigma.c:118

snd_pcm_sigma_open @ pcm_sigma.c:86
3. calls close interface of the module: snd_pcm_sigma_close @ pcm_sigma.c:23
4. goto 2

So basically what I see is an infinite open/close loop without any
call to other interfaces of the module. I hoped to get my hands on PCM
stream and start to push it into our proprietary chip :(.

Is my PCM IO Plugin approach correct?
Is my configuration (/etc/asound.conf) correct?
Is my implemention of PCM IO plugin interface correct? Should I
implement additional methods?
What do you think causes infinite open/close loop?

Thank you for your help,
Alexander Indenbaum
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pcm_sigma.c
Type: text/x-csrc
Size: 3169 bytes
Desc: not available
Url : http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20080402/2ce3abb5/attachment-0001.c 

More information about the Alsa-devel mailing list