48 Commits

Author SHA1 Message Date
Andrea Bondavalli
2fb74a0c46 Reverted build.sh to used clang as default compiler for the daemon 2024-10-25 18:04:43 +02:00
Andrea Bondavalli
00cc72a329 Changed build.sh to use the drvier version in the aes67-daemon branch of the https://github.com/bondagit/ravenna-alsa-lkm repository 2024-10-25 18:02:27 +02:00
Andrea Bondavalli
1b057635f3 Fix to build.sh to restore module compilation and to daemon regression tests 2024-09-16 12:38:32 +02:00
Andrea Bondavalli
969e343309 Use 3rdparty/ravenna-alsa-lkm via a submodule.
Fix to the daemon regression test.
2024-09-16 12:05:22 +02:00
Andrea Bondavalli
fdbfb3f1a1 Added init of git submodules in build.sh 2024-09-16 11:45:44 +02:00
Andrea Bondavalli
47da082405 - renamed USE_STREAMER compilation flag to _USE_STREAMER_
- changed cpp-httplib git submodule path to https://github.com/bondagit/cpp-httplib.git
- removed compilation warning related to the usage of Boost bind global placeholders
- updated daemon version to 2.0.2
2024-09-16 11:33:54 +02:00
Andrea Bondavalli
622417dd21
Merge pull request #171 from automaciej/submodules
Use cpp-httplib via a submodule.
2024-09-16 10:44:39 +02:00
Andrea Bondavalli
3af7dd3d64 Added support for sample rate 88200Hz to the WebUI and the test suite, see #173
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
2024-08-19 11:38:30 +02:00
Maciej Bliziński
48444bec65
Use cpp-httplib via a submodule.
This removes the need to script out the fetching of the other
repository. Submodule stores the version of the sub-repository.
2024-08-02 18:47:56 +01:00
Andrea Bondavalli
856b7f08ad
Merge branch 'master' into parallel-build 2024-07-25 18:46:43 +02:00
Andrea Bondavalli
cb5d400804
Merge pull request #167 from automaciej/multiple-lines
Split the cmake invocation into multiple lines.
2024-07-25 18:45:39 +02:00
Maciej Bliziński
2ca48a054b
Split the cmake invocation into multiple lines.
The `-D` statements are lined up and easier to read. It's also easier to
compare the `build.sh` and `buildfake.sh` files side-by-side.
2024-07-22 17:18:51 +01:00
Maciej Bliziński
44374bb3a6
Use --timestamping to avoid re-downloading.
When a newer version of the file appears, wget will automatically
update the file on disk.
2024-07-22 16:53:14 +01:00
Maciej Bliziński
941bba422e
Compile the daemon in parallel.
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.
2024-07-22 16:42:34 +01:00
Andrea Bondavalli
107d36af61 build.sh script chaged to build with WITH_SYSTEMD=ON.
Changed default daemon configuration with HTTP streamer disabled.
Additional cosmetic changes.
2024-07-07 11:44:21 +02:00
Andrea Bondavalli
070886ef52 Reverted driver branch to master 2023-05-18 12:40:04 +02:00
Andrea Bondavalli
0dd3b9bf70 Set of changes to the daemon to support additional sample rates and to enhance the test suites to verify with 192Khz and 384Khz
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
2023-04-19 12:49:47 +02:00
Andrea Bondavalli
eb79d897fe Added instructions on how to run the daemon via systemd, plus cosmetic changes 2023-02-03 15:39:12 +01:00
Andrea Bondavalli
c85a96c8c2 Changed build.sh script to use the forked version of HTTP Server at https://github.com/yhirose/cpp-httplib.git 2022-11-18 12:26:44 +01:00
Andrea Bondavalli
e62079db22 Added script "buildfake.sh" to build the daemon with the fake driver for testing purposes. 2022-11-15 22:25:11 +01:00
Andrea Bondavalli
38dabd5887 Added support to the daemon for a fake driver version.
This allows daemon execution without the RAVENNA driver for testing purposes and to allow regression tests to run into a Docker container.
2022-11-15 22:00:51 +01:00
Andrea Bondavalli
55b7246a08 Fix to build.sh script to use aes67-daemon driver branch. See #60 2021-12-30 09:55:17 +01:00
Andrea Bondavalli
9221deaf39 Changed the build script to use end_to_end_latency branch of the driver 2021-12-05 18:32:11 +01:00
Rune Warhuus
434d1e1f24
Fixed 3rd party directory checks 2021-11-07 18:47:18 +01:00
Andrea Bondavalli
76abb1bc1a build.sh script builds the WebUI locally in case the release WebUI is not avaiable 2021-05-28 18:40:58 +02:00
Andrea Bondavalli
54c83c1076 Revert to commit 6b0d0e1b20567a102037901fe28f7ef46891e623 2021-05-28 18:32:36 +02:00
Andrea Bondavalli
3472cb944d Fix to uncompress release WebUI tarball in case this exists 2021-05-28 17:37:53 +02:00
Andrea Bondavalli
185dd36452 build.sh script switches to local WebUI build in case release tarball is not available 2021-05-28 17:27:06 +02:00
Anton Bracke
c8b0dfa1a4 feat: use new webui release 2021-05-27 08:48:35 +02:00
Andrea Bondavalli
fe3ff1aabd - build.sh uses the branch aes67-daemon of the new github repo https://github.com/bondagit/ravenna-alsa-lkm.git
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
2021-02-16 21:09:50 +01:00
Andrea Bondavalli
77cf7bdb28 Added patch to Ravenna driver to fix a problem that leads to an initial playback buffer corruption in case the read/write interleaved mode is used.
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.
2021-02-03 18:41:00 +01:00
Andrea Bondavalli
bde3de9472 Revert build.sh 2021-01-31 19:45:31 +01:00
Andrea Bondavalli
bf847edd73 Added patch to Ravenna driver to solve a possible corruption issue at the beginning of a playback or recording caused by not initialized buffers. 2021-01-31 18:19:33 +01:00
Andrea Bondavalli
143d98dee5 Added patch to Ravenna driver to enable mono channel configuration for playback and capture devices.
Without this patch a Source or Sink configured with a single channel fail to work as expected.
2021-01-31 18:12:09 +01:00
amsobr
3d3e19ea3b make buildsystem yocto friendly
* 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
2020-11-02 10:54:51 +00:00
Andrea Bondavalli
b24ba6ef6b Added patch to the RAVENNA ALSA driver to implement direct PCM transfer for the memory map access mode as replacement to indirect PCM transfer.
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.
2020-08-02 15:42:47 +02:00
Andrea Bondavalli
e8c1c9d6bf Fix wrong file extension of ravenna-alsa-lkm-independent-playback-capture patch file 2020-07-07 22:21:12 +02:00
Andrea Bondavalli
4d30bdb24a Fixed build.sh script 2020-07-03 15:40:31 +02:00
Andrea Bondavalli
dd0ab49c6c Added fix to ALSA/RAVENNA driver to restore default number of inputs and outputs to 64.
These were set back to 8 after merge of ALSA/RAVENNA driver version 1.1.93.
This fixes issue #13
2020-06-30 17:27:16 +02:00
Andrea Bondavalli
3aeed93856 Added patch to the ALSA RAVENNA/AES67 driver to handle independent playback and capture I/O startup and termination.
This fixes issue #11
2020-06-26 19:31:23 +02:00
Andrea Bondavalli
6449524ed5 Modified daemon code and build.sh script to use version v0.7.0 of cpp-httplib 2020-06-18 19:33:21 +02:00
Andrea Bondavalli
9aaa5172ee Set of changes to support new ALSA RAVENNA/AES67 device driver version 1.1.93
- 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
2020-06-06 20:43:44 +02:00
Andrea Bondavalli
48718c8dc2 Renamed patch to add support for AM824 to AES67 ALSA driver 2020-04-24 09:04:32 -07:00
Andrea Bondavalli
1d2ea0875c Added support for AM824 codec for testing
- 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)
2020-04-10 13:04:44 -07:00
Andrea Bondavalli
5deb6c1927 Added to the daemon the support for Multicast DNS (using Linux Avahi) to allow discovery of remote audio sources and of RTSP for SDP transfer.
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.
2020-03-29 19:41:56 +02:00
Andrea Bondavalli
5e223ddb53 Initial set of changes to to enable proper compilation ond operations on ARMv7 32bit platform.
- 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
2020-02-05 13:52:01 -08:00
Andrea Bondavalli
52e8868b5e Added installation of clang compiler and option to use it 2020-02-02 07:10:32 -08:00
Andrea Bondavalli
259e99afbc First import 2020-01-28 20:16:30 +01:00