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(a)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. :(