23 Commits

Author SHA1 Message Date
Andrea Bondavalli
466f6b4fc4 First import of HTTP Streamer functionality in the daemon used to receive AES67 audio streams via HTTP file streaming.
The HTTP Streamer can be enabled via the _streamer_enabled_ daemon parameter.
When the Streamer is active the daemon starts capturing the configured _Sinks_ up to the maximum number of channels configured by the _streamer_channels_ parameters.

The captured PCM samples are split into _streamer_files_num_ files of _streamer_file_duration_ duration (in seconds) for each sink, compressed using AAC LC codec and served via HTTP.

The HTTP streamer requires the libfaac-dev package to compile.

Please note that since the HTTP Streamer uses the RAVENNA ALSA device for capturing it's not possible to use such device for other audio captures.
2024-07-06 17:27:49 +02:00
Andrea Bondavalli
2d13b632e3 Changed daemon default TIC frame size iat 1FS to 48 frames 2023-05-20 09:18:38 +02:00
Andrea Bondavalli
a8b833ddc0 Changed daemon version to v1.6.3, updated documentation and restored daemon test parameters 2023-05-13 12:36:40 +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
ffa8e80213 Added "auto_sinks_update" to the daemon configuration parameters and to the WebUI.
JSON boolean specifying whether to enable or disable the automatic update of the configured Sinks.
When enabled the daemon will automatically update the configured Sinks according to the discovered remote sources via SAP and mDNS/RTSP updates.
The SDP Originator (o=) is used to match a Sink with the remote source/s.
2023-01-14 19:24:43 +01:00
Andrea Bondavalli
4232a3ddd0 Adapted platform and latency tests to support a 64 channels configuration.
This configuration was succesfully tested on a Mini PC with Intel Celeron N4000.
2022-12-20 21:24:40 +01:00
Andrea Bondavalli
046babca3d Added custom node id parameter to daemon and WebUI to allow for a user defined node id. See #73 2022-05-26 08:33:20 +02:00
Andrea Bondavalli
dbb593120a Enhancement of daemon reconfiguration and PTP status update notification via shell script. See #82
The daemon can apply a configuration change to the following parameters without a restart:
    sap_interval, syslog_proto, syslog_server, log_severity, sample_rate

The daemon can apply a configuration change to the following parameters without a light restart:
    http_port, rtsp_port, http_base_dir, rtp_mcast_base, sap_mcast_addr, rtp_port, rtp_port, status_file, interface_name, mdns_enabled

A light restart means that the configuration can be applied without interrupting the playback/capture applications

A change to one of following paramters causes a full daemon restart:
    interface_name, tic_frame_size_at_1fs, max_tic_frame_size

On PTP status change the daemon can run in background an external shell script whose path name is specified by the new ptp_status_script Config parameter.
If this parameter is empty, no script is invoked. The PTP clock status is passed as first parameter to the script and it can be unlocked, locking or locked.
A sample script is provided in daemon/scripts/ptp_status.sh
2022-05-19 19:04:26 +02:00
Andrea Bondavalli
275a25689b Added latency tool to .gitignore 2021-12-30 09:54:18 +01:00
Andrea Bondavalli
750fce6029 Fixes to run_latency_sh script and latency test application 2021-12-08 17:31:09 +01:00
Andrea Bondavalli
c5e72e5d47 Fixed broken build of latency appliction with old g++ versions 2021-12-06 18:54:34 +01:00
Andrea Bondavalli
7def2411c0 Changes to latency test apllication:
- used monotonic clock instead of system clock
- precision increased to report micro senconds
- timestamp info is not added to pre-buffering samples
2021-12-06 12:10:46 +01:00
Andrea Bondavalli
7793b65f58 Added fix to latency wqtool to avoid crash if no samples were collecteA
d
2021-12-05 12:28:56 +01:00
Andrea Bondavalli
9725a73cfb Added tool to measure the end to end latency in loopback configuration to investigate #53
The script run_latency_test.sh can be used to run the test.
The latency utility measures the end to end latency by adding timestamps in the stream at playback time and checking the timestamps when the packets are received on the capture device.
The average measured end to end latency is printed at the end of the test.
The latency utility is based on a modified version of the original ALSA latency tool.
2021-12-05 11:07:06 +01:00
Andrea Bondavalli
248af78f77 Patches to use webui/dist folder instead of webui/build folder 2021-05-29 11:49:23 +02:00
Andrea Bondavalli
35f7772cbb Added to the WebUI the possibility to configure the following additional TIC frame size: 64, 128.
Updated daemon documentation with info on the new driver patch to remove unsupported non-interleved access that enables compatibility with JACK audio.
Changed default daemon configuration file to use a TIC frame size of 64 to enable configuring an ALSA period compatible with JACk audio.
Updated daemon version to 1.2.
2021-05-18 19:23:54 +02:00
Andrea Bondavalli
588358f2ea Fix to status.json file used by platform tests 2021-03-12 19:50:18 +01:00
Andrea Bondavalli
8e12abcc0e Re-added fix to check tool: check fails if the recorded file contains silence only 2021-02-17 20:35:02 +01:00
Andrea Bondavalli
330b1cf4db Fix to test/.gitignore 2021-02-16 21:01:33 +01:00
Andrea Bondavalli
7621beb83c - added platform compatiblity test used to test issue #17
- removed demo
- updated documentation with info about the platform compatiblity test
2021-02-16 20:57:31 +01:00
Andrea Bondavalli
723b410704 Removed test suite from master branch 2021-02-12 16:49:44 +01:00
Andrea Bondavalli
10b5749d2a Improved loopback test suite to support multiple configuration.
To run the test suite:

./run_test.sh sample_format sample_rate channels duration
Where:
    sample_format can be one of S16_LE, S24_3LE, S32_LE
    sample_rate can be one of 44100, 48000, 96000
    channels can be one of 1, 2, 4
    duration is in the range 1 to 10 minutes

The test suite creates a raw file with the specified parameters, runs a loopback test where the file gets played and recorded using the loopback network interface and checks that the recorded file, after the initial silence, contains the expected samples sequence.
This test was developed to further investigate the issue #17.
2021-01-31 18:26:41 +01:00
Andrea Bondavalli
21d598c8f7 Simple test suite to verify playback and recording in memory mapped mode on the network loopback interface.
This can be used t odebug issue #17.
2021-01-19 20:38:30 +01:00