Transport release should not be delayed if it is not active, since the
fd cannot be used any more, and the transport needs to be reacquired to
get a working fd.
Fixes reacquiring transports if the remote side causes them to become
inactive.
The signal_time of the driver is supposed to be the time when the
driver started, not when it was signaled the last time to complete
the graph. Remember the start time and override the signal time when
the graph completes.
Add a flag to the activation to mark the node as being profiled.
Only wake up the eventfd in remote-node when the profiler is running.
This keeps the server sleeping when remote nodes are driving and the
profiler is not running.
Make a copy of the node name into a statically allocated array. This is
for debugging purposes only but might crash if we do a name change while
the data thread is reading it.
Make it possible to do reposition on the client side by copying the id
to the target. The client side does not have a node in the target so we
can't deref it.
A software called `Dante Controller` is needed to configure Dante
devices (which also support AES67). This software is picky about the
order in which SDP records are received and parsed.
Changing the order or adding new records in between leads to faulty
display of our stream within `Dante Controller` (missing channel display
etc.) and the user is then unable to connect any Dante device to the
AES67 stream.
Bump the client-node version because we use the writefd differently now.
Support driver nodes using the old version somewhat. The stats will be
wrong but then again, we don't have any flatpak driver nodes that could
use an older version.
For remote nodes we don't activate the server anymore so the stats
won't reach the server anyway. It's better to do them at the end of the
cycle again.
`sd_journal_seek_tail()` is supposed to seek to the logical end of the journal,
i.e. (always) after the last entry. A call to `sd_journal_previous()` is needed
to seek to the last entry, so that `sd_journal_next()` can be called
successfully in `find_in_journal()`. Without it, the journal would always
stay at the end of the list of entries, so further `sd_journal_next()`
calls would fail as there are no entries after the last.
See:
* https://github.com/systemd/systemd/issues/25369
* https://github.com/systemd/systemd/pull/26577
The drivers with priority_driver <= 0 should not be used as a fallback
driver for audio ever because it does not do the timing correctly.
One example is the screencast driver.
Fixes#3219
When we skip the notify because we are not active or we don't have a
callback, still update the buffer_size and sample_rate fields or else
we will keep on trying forever.
Fixes#3226