[RESEND] [PATCH] winepulse: Add pulseaudio driver, v9

Stefan Dösinger stefandoesinger at gmx.at
Thu Mar 8 01:01:10 CST 2012


Hi Maarten,

>From a technical point of view, two things popped out:

1) configure is autogenerated by Alexandre, so you shouldn't include it in 
your patch. configure.ac is enough.

2) The patch doesn't apply with git-am. I don't know how much of an issue this 
is for AJ, but I prefer git-am over git-apply and manually committing

I barely know too much about sound, so I'm leaving the rest of the tech stuff 
up to Joerg and Eikum.

>From a user point of view, I have a previous version of that driver in my 
tree, and great hopes that it fixes some issues on my gaming setup that uses 
Pulseaudio(due to a multiseat configuration), e.g. bug 28856. The alsa route 
may eventually fix those bugs too, but I'm hoping for that since more than a 
year.

So good luck with your Pulse driver, and thanks for working on this flamewar-
infested stuff.

Cheers,
Stefan

Am Donnerstag, 8. März 2012, 01:22:58 schrieb Maarten Lankhorst:
> Signed-off-by: Maarten Lankhorst <m.b.lankhorst at gmail.com>
> ---
> Resending now v1.4 is released for inclusion into 1.5, no changes from v9
> 
> V1: Original version
> V2:
> - Added basic session manager bullshit
> - Fixed a bunch of test failures
> - Add stubs for audio volumes, fixes to make capture work
> V3:
> - 20% cooler
> - reworked clock handling to be much more accurate
> - rewrite of all the interesting parts
> - only tested rendering, capture untested
> V4:
> - Make mixer settings global to prevent
> - Start of making capture working again
> V5:
> - Really break capture this time, TODO!!
> - Fix most rendering tests except those related volume, rendering
>   should not only pass tests, but also be done in a correct way
> - Cleaned up channel mapping
> - Fix clock going 2x as fast
> V6:
> - Reliability fixes
> - Align buffer size to a multiple of period size
> - Remove session lock, I plan to use pulseaudio calls for volume, anyhow
> V7:
> - Implement shared mode capture correctly
> - All non-IAudioStreamVolume related tests should pass for capture and
>   rendering
> V8:
> - Add DllMain to fix valgrind complaints
> - Add real and fake volume control
> - Passes all tests including the ones marked todo_wine
> V9:
> - Rework IAudioClient::Reset, flushing is only needed for render stream.
> - Add stream validity checks to IAudioClock as well
> - Fix copy pasted bug from winealsa in clone_format (As reported by
> KittyCat) - Validate wBitsPerSample for float format (kcat)
> - Make the pulse mapping const (kcat)
> - Change mix format to float (kcat)
> - Fix volume comments referring to alsa instead of Pulseaudio
> - Split off pulseaudio spec to waveformat to a separate function
> - Disabled audioclock interpolation for now, until I determine how to do it
> properly. - Call SetEvent in render callback as last function, since it
> gives up time slot (as reported by Joerg) - Reworked capture logic to
> always capture, since that seems to be the case on windows, when stopped we
> simply drop whole packets, but keep firing the event. - Rework the logic
> behind GetMixFormat, and make capture and rendering formats and periods
> separate again. This is needed for example if you have 5.1 playback 44100
> with 32kHz 2 channel capture (USB microphone). - Complete the
> pa_channel_position -> dwChannelMask mapping
> - Use MulDiv instead of pa_bytes_to_usec or pa_usec_to_bytes in a few
> places. - Rendering buffers no longer have to be a multiple of period size.
> 
> There are 2 places that still have those calls, but in worst case it will
> make a 50 ns difference for the reported device periods, while the one in
> AudioClock::GetPosition is disabled until it's determined how to handle
> interpolation of IAudioClock::GetPosition, if that's still going to happen.
> 
> I believe with this I addressed all issues and comments raised in V8,
> and looking forward to any constructive feedback and test results of V9.
> In particular, I'm interested in XAudio2 results with windows version
> set to vista or higher, so that it uses mmdevapi directly
> 
> winmm and dsound should be able to work unmodified, but you may want
> to lower ds_snd_queue_max to 3 or 4 to decrease latency on dsound games.
> It seems dsound doesn't respect mmdevapi in that regard or 2 periods
> might have been possible. It would have been nice if it did. :(
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20120308/eaeb4a99/attachment.pgp>


More information about the wine-devel mailing list