[PATCH] winepulse: Add pulseaudio driver, v10
Maarten Lankhorst
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
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.
V10:
- Fix copyright header
- Fix capture underrun behavior to match windows (thanks Joerg for
investigating, bug 30147)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: winepulse-v10.patch
Type: text/x-patch
Size: 99783 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-patches/attachments/20120313/b67def61/attachment-0001.bin>
More information about the wine-patches
mailing list