Disabled daemon parallel builds in build.sh (option -j) as this can cause hangs on some platforms
Disabled streamer in daemon configuration used by platform and latency tests
Changed daemon version to 2.0.1
The compilation can be a bit slow when done sequentially. The `-j`
option automatically picks the number of parallel build jobs based on
the number of available cores.
The parallelization might be a concern then building on systems with a
small amount of RAM, that can be addressed when such occasion arises.
As a side note, in many build systems, we leave the `make` stage to be
executed separately by the user, so that the user can pick the level of
parallelization. There are a few invocations of `make` in the build.sh
script, I'm adding the `-j` flag only to the one that was slow in
practice.
The build script has been modified to checkout the driver branch aes67-daemon-issue11 with fixes to support sample rates higher than 192Khz.
These changes fix#124 and #122
This repo is a fork of the original one with the bondagit patches applied to the aes67-daemon branch
- removed ravenna-alsa-lkm driver patches from the repo
The problem arises from pre-buffering performed after ALSA prepare and before ALSA start trigger-
The patch enables the early startup of the audio playback interrupt and disables the cleanup (mute) of the playback buffer.
This issue can be reproduced using the test suite developed to investigate #17 and by removing the (-M) option from aplay in run_test.sh script.
* daemon:
- do not assume filesystem hierarchy in CMakeLists.txt
- do not replace default CXX compilation flags to avoid breaking
builds with external toolchain (e.g. yocto)
- allow for tests to be enabled/disabled
- allow for cpp-httplib dir to be provided by hand; otherwise search
for it in system locations
- allow for the location of the ravenna alsa lkm to be provided by
hand, otherwise look for it in system locations
PCM samples are transferred by the PCM interrupt routine from the memory of the ALSA playback device to the RAVENNA buffer and from the RAVENNA buffer to the memory of the ALSA capture device.
This patch will enabled the use of the ALSA plugins and it has been testes with the ALSA Dmix plugin.
This patch applies to issues #7 and #15.
- removed changes to driver/MTAL_LKernelAPI.c in ravenna-alsa-lkm-kernel-v5.patch
- added patch ravenna-alsa-lkm-disable-ptp-checksum.patch to the driver to the disable UDP checksum verification for the incoming PTP packets
- changed build.sh script to use new driver revision and apply the new patch
- added handling of the sink status flag "all_muted" in daemon, WebUI and regression tests
- updated documentation
- added patch to ravenna-alsa-lkm module to support AM824 codec and associated conversion functions
- added support for AM824 codec to daemon and in WebUI
- modifed demo to test 8 channels of AM824 with 6 samples per packet @ 48Khz (125us x packet)
Added to the WebUI the possibility to directly select a remote source SDP file for a Sink.
New files:
daemon/mdns_client.hpp,cpp -> mDNS client implementation using Avahi client library
daemon/rtsp_client.hpp,cpp -> RTSP client implementation used to transfer SDP file
daemon/utils.cpp -> used for common utility functions
.clang-format -> added clang-format configuration file
Modified files:
daemon/CMakeList.txt -> added support for Avahi and option WITH_AVAHI=[yes/no] to compile the daemon with or without Avahi mDNS support
daemon/config.hpp,cpp -> added configuration option mdns_enabled to enable or disable mDNS discovery at runtime
daemon/json.cpp -> extended JSON config with mdns_enabled option
daemon/browser.hpp,cpp -> added support for mDNS client to the browser
daemon/session_manager.cpp -> added support for RTSP protocol to Source URL field and fixed issue with SDP file parsing
webui/RemoteSources.js -> added visualization of mDNS remote sources
webui/SinkEdit.js -> added the possibility to directly select a remote source SDP file for a Sink
webui/SourceInfo.js -> added visualization of protocol source (SAP, mDNS or local) for a source
ubuntu-packages.sh -> added libavahi-client-dev to the list of required packages
build.sh -> added WITH_AVAHI=yes option when invoking CMake
README.md -> added notes about mDNS support via Avahi
daemon/README.md -> added notes about mDNS support via Avahi, support for RTSP protocol in source and new mdns_enabled config param
Additional minor changes to remaining files.
- added patch to ALSA RAVENNA/AES67 Driver
- switched to CLANG compiler in order to compile the daemon succesfully
- disabled valgind memory check in daemon regression tests for ARM.
Demo and daemon regression test work properly.
Tests have been executed on the BeagleBone® Black board with ARM Cortex-A8 32-Bit and Ubuntu 18.04 distro