[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