Changelog

Version 0.1.5 (Apr 5, 2020)

Building

  • correctly handle arguments in environment variables like CXX/CC/LD/etc (for Yocto Linux)

  • correctly handle spaces in environment variables (for Yocto Linux)

  • fix environment overrides checks

  • fix building of the host tools when cross-compiling

  • fix warnings on Clang 11

  • fix sphinx invocation

  • explicitly disable Orc when building PulseAudio using –build-3rdparty

  • explicitly enable -pthread or -lpthread for libsndfile (for Manjaro Linux)

  • user CMake instead of autotools when building libuv for Android using --build-3rdparty

  • switch to libuv 1.35.0 by default in --build-3rdparty

  • check for unknown names in --build-3rdparty

Portability

  • fix building on Manjaro Linux

  • fix building on Yocto Linux

  • add openSUSE to continuous integration and user cookbook

  • drop Xcode 7.3 from continuous integration, add Xcode 11.3

Version 0.1.4 (Feb 6, 2020)

Internals

  • fix logging

Building

  • make /usr/local prefix default everywhere except Linux

  • make default compiler consistent with CXX var

  • fix handling of RAGEL, GENGETOPT, DOXYGEN, SPHINX_BUILD, and BREATHE_APIDOC vars

  • fix SoX download URL (again)

  • fix CPU count calculation

Documentation

  • update PulseAudio version numbers in “User cookbook”

  • update CONTRIBUTING and “Coding guidelines”

  • update maintainers and contributors list

Version 0.1.3 (Oct 21, 2019)

Tools

  • add --list-drivers option

  • add git commit hash to version info

Internals

  • print backtrace on Linux and macOS using libunwind instead of glibc backtrace module

  • print backtrace on Android using bionic backtrace module

  • colored logging

Building

  • add libunwind optional dependency (enabled by default)

  • add ragel required dependency

  • rename “uv” to “libuv” in --build-3rdparty

  • don’t hide symbols in debug builds

  • strip symbols in release builds

  • fix building on recent Python versions

  • fix SoX download URL

  • fix PulseAudio version parsing

  • automatically apply memfd patch when building PulseAudio

  • automatically fix libasound includes when building PulseAudio

Version 0.1.2 (Aug 14, 2019)

Bugfixes

  • fix handling of inconsistent port protocols / FEC schemes

  • fix IPv6 support

  • fix incorrect usage of SO_REUSEADDR

  • fix panic on bind error

  • fix race in port removing code

  • fix packet flushing mechanism

  • fix backtrace printing on release builds

Internals

  • rework audio codecs interfaces (preparations for Opus and read-aheads support)

  • minor refactoring in FEC support

  • improve logging

Portability

  • fix building on musl libc

  • continuous integration for Alpine Linux

Building

  • allow to configure installation directories

  • auto-detect system library directory and PulseAudio module directory

Documentation

  • extend “Forward Erasure Correction codes” page

  • add new pages: “Usage”, “Publications”, “Licensing”, “Contacts”, “Authors”

  • replace “Guidelines” page with “Contribution Guidelines”, “Coding guidelines”, and “Version control”

Version 0.1.1 (Jun 18, 2019)

Bugfixes

  • fix memory corruption in OpenFEC / LDPC-Staircase (fix available in our fork)

  • fix false positives in stream breakage detection

Portability

  • start working on Android port; Roc PulseAudio modules are now available in Termux unstable repo

  • continuous integration for Android / arm64 (minimal build)

  • docker image for aarch64-linux-android toolchain

Testing

  • fix resampler AWGN tests

  • add travis job to run tests under valgrind

Building

  • fix multiple build issues on macOS

  • fix multiple build issues with cross-compilation and Android build

  • fix issues with building third-parties

  • fix issues with compilation db generation

  • set library soname/install_name and install proper symlinks

  • improve configuration options

  • improve system type detection and system tools search

  • improve scripts portability

  • better handling of build environment variables

Version 0.1.0 (May 28, 2019)

Features

  • streaming CD-quality audio using RTP (PCM 16-bit stereo)

  • maintaining pre-configured target latency

  • restoring lost packets using FECFRAME with Reed-Solomon and LDPC-Staircase FEC schemes

  • converting between the sender and receiver clock domains using resampler

  • converting between the network and input/output sample rates

  • configurable resampler profiles for different CPU and quality requirements

  • mixing simultaneous streams from multiple senders on the receiver

  • binding receiver to multiple ports with different protocols

  • interleaving packets to increase the chances of successful loss recovery

  • detecting and restarting broken streams

API

  • initial version of transport API (roc_sender, roc_receiver)

Tools

  • initial version of command-line tools (roc-send, roc-recv, roc-conv)

  • initial version of PulseAudio transport (module-roc-sink, module-roc-sink-input)

Portability

  • GNU/Linux support

  • macOS support

  • continuous integration for Ubuntu, Debian, Fedora, CentOS, Arch Linux, macOS

  • continuous integration for x86_64, ARMv6, ARMv7, ARMv8

  • toolchain docker images for arm-bcm2708hardfp-linux-gnueabi, arm-linux-gnueabihf, aarch64-linux-gnu

  • testing on Raspberry Pi 3 Model B, Raspberry Pi Zero W, Orange Pi Lite 2