winepulse: Add pulseaudio driver, v12
Maarten Lankhorst
m.b.lankhorst at gmail.com
Sun Apr 8 03:45:30 CDT 2012
---
Some distros have started picking up my patches, and I noticed a small
bug when testing capture device switching that warranted a bugfix release.
I hope that this version will find its way to the respective maintainers
when they look for updates.
---
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)
V11:
- Make some members static
- Fix small memory leak in GetService
V12:
- Fix incorrect assertions which may fail on moving a capture device
- Whitespace apply fixes
---
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: winepulse-v12.txt
URL: <http://www.winehq.org/pipermail/wine-patches/attachments/20120408/7d9f016f/attachment-0001.txt>
More information about the wine-patches
mailing list