[pulseaudio-discuss] [PATCH v7 00/33] raop2 support for module-raop-sink

Hajime Fujita crisp.fujita at gmail.com
Sun Nov 6 18:53:54 UTC 2016

This patch set adds a support for UDP version of RAOP (so called
raop2). Most of the RAOP devices (e.g. AppleTV, AirportExpress,
third party AV receivers) today use UDP version, so this patch
set is expected to support those devices.

This patch set can also be accessed from:

This patch addresses several comments from reviewers.
>From Arun Raghavan:
* Use pa_split_in_place instead of pa_split in pa_str_in-list
* Remove garbage file from the log

>From Anton Lundin:
* Make sure using correct spell of KTH
* Always pa_xstrdup() and pa_xfree() on server capability discovery
  for better code maintainability.
* Split a base64 cleanup patch and an MD5 patch
* Retain KTH copyright on base64 implementation

>From both:
* Stop dropping "device" key when parsing server capabilities
* Swap order between "raop: Add UDP protocol handling" and
  "raop: Parse server capabilities on discovery".

Colin Leroy (4):
  raop: Fix sink getting destroyed after one use
  raop: fix sequence number overflow
  raop: fix typos
  raop: Fix packet retransmission

Hajime Fujita (11):
  pulsecore: Add pa_strneq macro
  pulsecore: Add pa_split_space_in_place function
  pulsecore: Do in-place search in pa_str_in_list_spaces
  raop: Add UDP protocol handling
  raop: Add address to RAOP device description
  raop: Add IPv6 support
  raop: Silently drop out-of-history retransmission request
  raop: Stop recording when RTSP FLUSH is issued
  raop: Disable is_recording flag when tearing down the connection
  raop: Discard data upon getting EAGAIN on a socket
  raop: Fix memory leaks

Martin Blanchard (14):
  raop: Parse server capabilities on discovery
  raop: Do not send audio before RECORD response
  raop: Better playback resume handling
  raop: Extract encryption related code into a separate file
  raop: Move base64 implementation to a util file
  raop: Add a MD5 hashing fuction
  raop: Add BA (Basic) and DA (Digest) HTTP authentication helpers
  raop: Merge TCP and UDP code paths + refactoring
  raop: Prefer ALAC encoding to raw PCM if supported by server
  raop: Update and standardise source file headers
  raop: Rework packet's store memory management
  raop: Remove unimplemented code (PCM and AAC)
  raop: Correctly wrap RTP packet sequence number
  raop: Add back initial volume RTSP SET_PARAMETER request on connect

Matthias Wabersich (1):
  raop: Packet retransmission support for UDP

Stephen Paul Weber (1):
  raop: Do not flush when RTSP object is not ready

ced2c (2):
  raop: Fix #36: invalid access to freed object
  raop: Fix #37: OOB access in rtsp_auth_cb

 src/Makefile.am                            |    8 +-
 src/modules/raop/module-raop-discover.c    |  107 +-
 src/modules/raop/module-raop-sink.c        |  630 +---------
 src/modules/raop/raop-client.c             | 1768 ++++++++++++++++++++++++++++
 src/modules/raop/raop-client.h             |   83 ++
 src/modules/raop/raop-crypto.c             |  146 +++
 src/modules/raop/raop-crypto.h             |   35 +
 src/modules/raop/raop-packet-buffer.c      |  161 +++
 src/modules/raop/raop-packet-buffer.h      |   40 +
 src/modules/raop/raop-sink.c               |  669 +++++++++++
 src/modules/raop/raop-sink.h               |   33 +
 src/modules/raop/{base64.c => raop-util.c} |  165 ++-
 src/modules/raop/{base64.h => raop-util.h} |   17 +-
 src/modules/raop/raop_client.c             |  570 ---------
 src/modules/raop/raop_client.h             |   42 -
 src/modules/rtp/rtsp_client.c              |   91 +-
 src/modules/rtp/rtsp_client.h              |   30 +-
 src/pulsecore/core-util.c                  |   30 +-
 src/pulsecore/core-util.h                  |    2 +
 19 files changed, 3307 insertions(+), 1320 deletions(-)
 create mode 100644 src/modules/raop/raop-client.c
 create mode 100644 src/modules/raop/raop-client.h
 create mode 100644 src/modules/raop/raop-crypto.c
 create mode 100644 src/modules/raop/raop-crypto.h
 create mode 100644 src/modules/raop/raop-packet-buffer.c
 create mode 100644 src/modules/raop/raop-packet-buffer.h
 create mode 100644 src/modules/raop/raop-sink.c
 create mode 100644 src/modules/raop/raop-sink.h
 rename src/modules/raop/{base64.c => raop-util.c} (50%)
 rename src/modules/raop/{base64.h => raop-util.h} (61%)
 delete mode 100644 src/modules/raop/raop_client.c
 delete mode 100644 src/modules/raop/raop_client.h


More information about the pulseaudio-discuss mailing list