[PATCH] winepulse.drv: Add PulseAudio driver

Chris Robinson chris.kcat at gmail.com
Mon Jun 18 13:40:49 CDT 2012

On Monday, June 18, 2012 11:18:45 AM Andrew Eikum wrote:
> Is there any guarantee that Pulse /will/ give us a sufficient buffer?
> From the API docs[1], it just "tries to assure" that we have the
> requested buffer size, which actually means nothing.

It "tries to assure that at least tlength bytes are always available in the 
per-stream server-side playback buffer". You get the buffer size you ask for 
with tlength, and the server does what it can to make sure that's how many 
bytes are waiting in the buffer (by sending write requests at the appropriate 
times to keep it filled, specifying the unused portion of the buffer as 
writable, etc).

It doesn't mean the buffer itself can be smaller than what you asked for, just 
that the number of bytes waiting in it may be. The buffer size can increase up 
to maxlength, and that can be something like 2 or more seconds.

> And even worse, Pulse's API doesn't let us set both the buffer size
> and the latency[2].

The buffer size can grow as-needed, up to maxlength. The initial size won't 
restrict you in any way. If you set maxlength to -1, Pulse will set it to the 
max size supported by the server.

There should be no issue with PulseAudio supporting buffer sizes as large as 
mmdevapi would want.

More information about the wine-devel mailing list