[pulseaudio-discuss] [PATCH 00/12] A new ringbuffer based protocol for PulseAudio

David Henningsson david.henningsson at canonical.com
Fri May 30 04:59:19 PDT 2014


Third iteration.

Changes since previous version:

 * it's now srbchannel (Shared RingBuffer) instead of srchannel
   (srchannel could easily be read as src-hannel)

 * srbchannel test added on pstream level, also tests the pstream on
   the iochannel btw.

 * protocol-native has a new module parameter "srbchannel", which defaults
   to true. Set it to false to use the iochannel only.

 * srbchannel setup is now acked by client, and packets are sent in a
   different order. No srbchannel without both parties agreeing on it.

 * Pstream: fixed the actual switching to be slightly more robust, and
   only happening when the output buffer is empty.

 * fixed pa_iochannel_read_with_ancil to fall back to pa_iochannel_read
   in case it was called on a non-socket.

David Henningsson (11):
  creds: Add struct for ancillary data
  iochannel/pstream/pdispatch: Add support for receiving file
    descriptors
  iochannel/pstream: Support sending file descriptors
  srbchannel: Add the shared ringbuffer object
  shm: Allow to open shm in writable mode
  memblock, pstream: Allow send/receive of remote writable memblocks
  core: Add a second rw mempool
  pstream: Allow reading/writing through srbchannel
  Protocol, client: Add commands to enable srbchannel
  protocol-native: Enable srbchannel
  tests: Add pstream/srbchannel test

Peter Meerwald (1):
  tests: Adapt memblock-test to changed pa_memimport_get()

 PROTOCOL                           |  20 +++
 configure.ac                       |   2 +-
 src/Makefile.am                    |   9 +-
 src/modules/module-protocol-stub.c |   6 +-
 src/modules/module-tunnel.c        |   4 +-
 src/pulse/context.c                | 112 ++++++++++++-
 src/pulse/internal.h               |   3 +
 src/pulsecore/core.c               |  14 +-
 src/pulsecore/core.h               |   5 +-
 src/pulsecore/creds.h              |  13 ++
 src/pulsecore/iochannel.c          |  85 ++++++++--
 src/pulsecore/iochannel.h          |   3 +-
 src/pulsecore/memblock.c           |  40 ++++-
 src/pulsecore/memblock.h           |   6 +-
 src/pulsecore/native-common.h      |   5 +
 src/pulsecore/pdispatch.c          |  26 ++-
 src/pulsecore/pdispatch.h          |   4 +-
 src/pulsecore/protocol-native.c    |  79 ++++++++-
 src/pulsecore/protocol-native.h    |   1 +
 src/pulsecore/pstream-util.c       |  31 +++-
 src/pulsecore/pstream-util.h       |   1 +
 src/pulsecore/pstream.c            | 317 ++++++++++++++++++++++++-------------
 src/pulsecore/pstream.h            |   9 +-
 src/pulsecore/shm.c                |  12 +-
 src/pulsecore/shm.h                |   2 +-
 src/pulsecore/srbchannel.c         | 305 +++++++++++++++++++++++++++++++++++
 src/pulsecore/srbchannel.h         |  62 ++++++++
 src/tests/memblock-test.c          |   4 +-
 src/tests/srbchannel-test.c        | 138 ++++++++++++++++
 29 files changed, 1163 insertions(+), 155 deletions(-)
 create mode 100644 src/pulsecore/srbchannel.c
 create mode 100644 src/pulsecore/srbchannel.h
 create mode 100644 src/tests/srbchannel-test.c

-- 
1.9.1



More information about the pulseaudio-discuss mailing list