[pulseaudio-discuss] Moving sources and sinks

Tomas Carnecky tom at dbservice.com
Tue May 6 15:43:08 PDT 2008

Lennart Poettering wrote:
> I could repeat here what I wrote in response to Nick
> Thompson. Complaining about Free Software is nothing that makes you
> any friends in the community.

Fine. I'm complaining. But let me tell you this. I dug through the Wine 
alsa driver, the alsa pulse plugin and the PA sources. I now pretty much 
know how these three components interact and where the problems are. I 
simply arrived at a point where I wasn't willing to dig any deeper. I'm 
simply not ready to study the codebase any more. I've seen my share. 
Enough to be able to create a fairly precise bug report. So I wrote to 
this mailinglist and asked for help. I didn't demand that you fix the 
bugs. I just wanted some advice. And to that I didn't get any response.

> I am not using wine myself, and haven't looked into fixing this. I had
> a quick peek into it though. They did almost everything wrong that you
> can do wrong if you care about supporting more than a single backend
> driver for your ALSA code. They made invalid assumptions about mixer
> tracks, they use the super-ugly and not-portable
> snd_async_add_pcm_handler() where it is almost guranteed that people
> get it wrong (because those handlers are run from signal handler
> context, which has some very special semantics, ranging from errno
> handling to a lot of other things) and a lot more. It is nearly
> impossible to write a backend for ALSA that works with applications
> like these. Basically, the task is to clean up WINE's ALSA use, before
> looking on the PA backend for libasound.

The async handler was removed last summer, as part of the driver rewrite 
in a GSoC2007 project. And a lot other fixes also went into the Wine 
alsa driver since then. Most of the issues have already been fixed. The 
mixer code still may be a bit unclean, but that has nothing to do with 
the audio playback problems. If you know of any other outstanding issues 
in the Wine driver (apart from the _delay() misuse), please tell the 
Wine folks or me, I'll gladly forward the mail to the current maintainer.

As the chances of including a native PA driver in Wine are zero, the 
focus is on improving the current Wine alsa driver and the alsa pulse 
plugin. That is what I'm trying to do.


More information about the pulseaudio-discuss mailing list