At Mon, 19 May 2008 12:38:39 +0300 (EEST), Juha Erkkilä wrote:
I'm trying to get Abode Flash Player working properly on a thin client, with sound, using Pulseaudio as a sound server. I'm using ALSA version 1.10.15 and Pulseaudio version 0.9.10 on Ubuntu Hardy, with Pulseaudio server running as a system-wide daemon on the thin client. I already outlined the issues on Pulseaudio mailing list on this post: https://tango.0pointer.de/pipermail/pulseaudio-discuss/2008-May/001793.html, see also Lennart Poettering's answer: https://tango.0pointer.de/pipermail/pulseaudio-discuss/2008-May/001796.html.
I feel the proper solution would involve writing support for asynchronous notification into ALSA library and I/O-plugin layer. Currently, Pulse I/O-plugin does not work in the Flash case, because Flash requires the asynchronous API. On the other hand, Pulse requires the I/O-plugin layer to work. See the posts by Alexander Indenbaum, http://mailman.alsa-project.org/pipermail/alsa-devel/2008-April/007033.html, and Takashi Iwai, http://mailman.alsa-project.org/pipermail/alsa-devel/2008-April/007335.html, on this subject.
I tried to tackle this issue, and did get the signal handling code to call the Flash audio callback, but I'm new to both ALSA and Pulseaudio, and it appears there are some issues with it I don't fully understand. Thus I'm asking: are there any other people who have been looking into this, or anyone who can tell whether this is a sane thing to do or not, will it require some nasty hack, or can help with some pointers to relevant information?
I'm hoping that implementing the asynchronous API on I/O-plugin layer would not only fix Flash audio, but might help some other programs too to achieve network transparent audio.
Yeah, the async support is a big missing piece in ioplug. I didn't think it be so important until someone told me that flash player uses it. Sigh.
I have experimental patches to add async support to ioplug. With a quick test using jack plugin, it seems working somehow. Will post them alsa-devel now.
thanks,
Takashi