Re: [Ekiga-list] A comparison ALSA-PULSE (long, addendum)



Derek Smithies wrote:
Hi,
Perhaps it's PTLib underneath it? I really don't know, I'm just throwing
the idea out there!

 It is PTLib which contains the code to read from alsa.

Surely, the ideal is not to go via ALSA, but have ptlib directly talk to pulse. Thus, we need to write a ptlib plugin for pulse audio.

We know how ptlib plugins work. There are example plugins for alsa, esd, oss, sunaudio. The big question is writing a plugin for pulse.

What is involved in writing code that talks directly to pulse ?
Anyone know example code, or of the pulse api docs?

Please don't refer me to docs which say "just use alsa code". We are using alsa code, and that is why we are having this issue.

Derek.
I think you are right. For the reasons you mention, but also because the current alsa plugin is seriously flawed I made a short review very late yesterday. Among other things it's synchronized in a way that forces playback and record to wait for each others' I/O operations(!)

With this said, I don't (yet) see any problems in understanding and using the external interface. These problems are within the alsa plugin.

So: with limited resources we have a choice to either "fix" (i. e., major rewrite of) current alsa plugin, or make a pulse plugin. The latter is most likely easier. But then we leave platforms without pulse in the dark ages. So question is: do we need a working alsa plugin if we have a pulse one? Anyone? (let's take silence as a "no" :-) )

What disturbs me a little is the way the plugin interface "seems" to be, at least from the alsa example. Question is if there is a way to arrange event-driven I/O - current code is strictly polled. OTOH, we can live with that, for sure. But there "might* be other hooks in the plugin interface not used today... we might need to backwards-engineer some docs... possibly expanding the plugin interface in a backwards-compatible way....

There is good pulse doc's on their website e. g., http://0pointer.de/lennart/projects/pulseaudio/doxygen/




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]