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