[PATCH] winepulse: Add pulseaudio driver, v10
m.b.lankhorst at gmail.com
Tue Mar 13 05:23:41 CDT 2012
Very little has changed since v9. Diff of v9 to v10 is attached to
thread "Re: What happens upon mmdevapi capture overrun on native?"
Also didn't include the delta to configure this time.
V1: Original version
- Added basic session manager bullshit
- Fixed a bunch of test failures
- Add stubs for audio volumes, fixes to make capture work
- 20% cooler
- reworked clock handling to be much more accurate
- rewrite of all the interesting parts
- only tested rendering, capture untested
- Make mixer settings global to prevent
- Start of making capture working again
- 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
- Reliability fixes
- Align buffer size to a multiple of period size
- Remove session lock, I plan to use pulseaudio calls for volume, anyhow
- Implement shared mode capture correctly
- All non-IAudioStreamVolume related tests should pass for capture and
- Add DllMain to fix valgrind complaints
- Add real and fake volume control
- Passes all tests including the ones marked todo_wine
- 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
- 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
- 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
- Rendering buffers no longer have to be a multiple of period size.
- Fix copyright header
- Fix capture underrun behavior to match windows (thanks Joerg for
investigating, bug 30147)
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 99783 bytes
Desc: not available
More information about the wine-patches