101 Commits

Author SHA1 Message Date
Andrea Bondavalli
acb1e55d08 Added RTSP client connection timeout of 5 secs. See issue #91 2022-08-20 11:12:05 +02:00
Anders Martinsson
b7d797c118 Correct case for kHz (kilohertz) 2022-06-07 17:06:26 +02:00
Andrea Bondavalli
1886317cab Fix to avoid creation of zombie processes by PTP status script, see #85 2022-06-03 08:52:04 +02:00
Andrea Bondavalli
e2aad3e288
Update README.md 2022-05-28 08:52:20 +02: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
1c11e7d212 Fix for issue #84 2022-05-25 17:34:22 +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
a0b15bfae2 changed daemon version to bondagit-1.4 2021-12-30 10:28:34 +01:00
Andrea Bondavalli
9f01d97635
Merge pull request #59 from calanor/master
Fixes get_interface_index.  Issue #57
2021-12-30 10:25:45 +01:00
Andrea Bondavalli
3f9db3a80b Added the SAP originating source address, in addition to the SAP identifier hash, to the browser source id 2021-12-30 10:01:08 +01:00
calanor
619cc13570
Fixes bad retrun value in get_interface_index 2021-12-28 17:59:20 +01:00
Andrea Bondavalli
7ed2ad492c Added more DSCP values for Audio Source and PTP in WebUI. See #40. 2021-11-09 16:34:59 +01:00
Andrea Bondavalli
b2a582a14a Fix for #51: added inclusion of map header to rtsp_client.hpp 2021-10-05 19:19:41 +02:00
Andrea Bondavalli
e12d160aa9 Merge branch 'issue-50' 2021-09-30 19:10:56 +02:00
Andrea Bondavalli
4381260ffa Updated daemon version to 1.3 2021-09-30 19:08:32 +02:00
Andrea Bondavalli
52f6990a7a Fix issue-50: don't update the browser record in case we receive multiple annoucements packets from a SAP source in a period shorter than 1 second 2021-09-30 19:03:45 +02:00
Andrea Bondavalli
c7d3f56c1e Fix for #50:
skip setting a source announce period to 0 in case we receive multiple aanoucements packets from a SAP source in a period shorter than 1 second
2021-09-30 12:46:09 +02: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
f6d7799ec7 Changed daemon version to v1.1 2021-03-11 18:01:46 +01:00
Andrea Bondavalli
e72285b7e8 Restored default daemon.conf 2021-03-11 18:01:08 +01:00
Andrea Bondavalli
1af74dcbf0 Added support for unicast RTP stream address to daemon and WebUI, see #30
- added address field to Source struct definition to contain the destination address. If this field is left empty the default multicast address is used.
- if a unicast address is provided when creating a new Source the daemon looks in the ARP cache to retrieve the corresponding MAC address.
  If this is not found the daemon tries to connect to echo TCP service of the destination host and looks into the ARP cache up to 3 times and then returns and error.
- added RTP address field in the Source creating form of the WebUI. If this field is left empty the default multicast address is used instead.
- updated documentation and regression test suite
2021-03-04 18:31:34 +01:00
Andrea Bondavalli
399e22216a - added command line option -v to daemon to return current version
- set current daemon version to bondagit-1.0
- added HTTP API to return current daemon version and updated documentation
- added diplay of current daemon version in WebUI Config page
2021-02-25 18:00:01 +01:00
Andrea Bondavalli
aa8c08d8a9 The daemon set the driver sample rate when a new sample rate is advertised.
The issue was found during investigation of #27.
2021-01-15 12:37:11 +01:00
Andrea Bondavalli
f1dcd96e42 Fix for incorrect SAP packets TTL
This fixes issue #25
2020-11-25 12:46:51 +01:00
amsobr
93e602f07d fix compilation of tests under yocto 2020-11-03 14:23:48 +00:00
amsobr
0be822dcf4 fix cmakelists to support cmake 3.7.0 2020-11-03 10:09:37 +00: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
7d6a8289d5 Fix to RtspClient::process() method to avoid ending up into an infinite loop in certain cases when the client gets stopped via RtspClient::stop() or RtspClient::stop_all() methods.
The bug was also preventing the daemon from terminating. It was possible to reproduce the problem using the add_remove_check_mdns_browser_update_all regression test.
2020-07-29 21:21:58 +02:00
Andrea Bondavalli
fbf28ada45 Changed remote SAP source default announce period to daemon default SAP interval 2020-06-27 10:00:22 +02:00
Andrea Bondavalli
cee8823e5c Added handling of session ID <sess-id> and session version <sess-version> in the Origin ("o=") field of the Sources SDP files.
Session ID is the Node ID plus the source ID.
Session version is the session ID plus an increasing version identifier.
This fixes issue #10 and allows Dante Controller to properly handle the daemon Sources.
2020-06-27 09:32:06 +02:00
Andrea Bondavalli
9062a82033 - modified daemon code to support startup in case the specified network interface doesn't have an IP address. In this case the daemon waits for an IP address.
- removed not functional daemon option (-i)
- fixed exception handling in SAP::send() method
2020-06-18 19:49:24 +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
098cebd056 Applied Clang source code formatting to daemon sources 2020-06-16 21:14:44 +02:00
Andrea Bondavalli
95e6fbcf56 Fixed add_remove_check_mdns_browser_update_all regression test.
Added note on regression tests execution.
2020-06-15 19:54:26 +02:00
Andrea Bondavalli
3a386696e9 Removed execute permission from source files 2020-06-14 23:54:36 +02:00
Andrea Bondavalli
b40a6a51f3 Node ID generation is based on the IP address of the selected interface.
Removed call to gethostid() function that is buggy and can create troubles.
2020-06-14 23:13:48 +02:00
Andrea Bondavalli
e7cfaa1d99 Minor changes to code indentation 2020-06-14 05:30:58 -07:00
Andrea Bondavalli
7f2bd7f4f0 Fix to generation of Node ID based on get_node_id() utils function: if gethostid() uses the loopback address interface IPv4 we create a new ID based on the current interface IPv4
This fixes a problem on old Ubuntu distro causing the Node ID to be the same for multiple hosts.
Additional minor changes:
 - removed compilation warnings
 - some fixes to code indentation
2020-06-14 14:05:21 +02:00
Andrea Bondavalli
7c5d2a4b29 Fixed missing include files 2020-06-06 23:36:26 +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
13c7078a88 Minor changes to regression tests 2020-06-04 10:29:28 -07:00
Andrea Bondavalli
0b27a6ee9e Minor changes 2020-06-04 10:26:42 -07:00
Andrea Bondavalli
6a025c1e7a Modified sample scripts sample rate to daemon default, that is 48Khz 2020-06-04 09:24:42 -07:00
Andrea Bondavalli
8f09eec36c Disabled use of valgrind memcheck during daemon regression tests 2020-06-04 09:23:59 -07:00
Andrea Bondavalli
371090e7b9 Changes to SessionManager class to handle notifications for source updates triggered when the PTP GMID clock changes or the driver sample rate changes.
SessionManager allows the registration of source update observers and delivers via callbacks the above notifications.
RTSP server modified to register to source update notifications and to send updates to clients via ANNOUNCE method.
2020-06-04 09:14:17 -07:00
Andrea Bondavalli
3a60c0492f Change to RTSP client to accept also an empty Content-Type.
In this case application/sdp is assumed.
2020-06-04 09:12:39 -07:00
Andrea Bondavalli
0367dc33a0 MDNS client changed to avoid that multiple Avahi resolvers try to resolve the same name and domain simultaneously 2020-06-04 09:09:57 -07:00
Andrea Bondavalli
e348400246 Improved robustness of RTSP client removal handling 2020-06-02 14:10:36 -07:00
Andrea Bondavalli
267b97cbe7 Fix: added removal of RTSP client session if RTSP client connection closes 2020-06-02 12:31:40 -07:00