Wim Taymans
7de7a620f3
module-ffado: fix latency configuration
...
Don't deref the port before we created it.
2023-06-05 10:21:18 +02:00
Wim Taymans
cc82715325
module-netjack2: refactor
...
Move common code to a separate file.
2023-06-05 10:20:43 +02:00
Wim Taymans
7bd74a67f4
module-netjack2: use frames from graph and sync
...
The params are the initial period_size, use the ones used to
encode the packets.
2023-06-02 15:43:34 +02:00
Wim Taymans
629e322fac
module-netjack2: clear empty buffers
2023-06-02 15:09:31 +02:00
Wim Taymans
287566937e
module-netjack2: improve node names
2023-06-02 13:31:38 +02:00
Wim Taymans
2988d9c831
module-netjack2: small improvements
...
Improve node properties
Improve module parameters and docs
Send send and recv buffer sizes.
Stop follower on connection errors.
2023-06-02 13:24:49 +02:00
Wim Taymans
2d253de359
module-profiler: add per client xrun count in profiler data
...
So that pw-top can show the client xruns instead of the driver xruns
2023-06-02 13:23:55 +02:00
Wim Taymans
9727bf3c4b
modules: fix some compiler warnings
2023-06-01 19:01:25 +02:00
Barnabás Pőcze
4e370151b0
pipewire: introspect: do not leave spa_param_infos uninitialized
...
`pw_reallocarray()` leaves the newly allocated storage (if any)
uninitialized, so fill the bytes of the new `spa_param_info` objects
with zeros in `pw_{node,port,device}_info_merge()` to avoid handing
out pointers to uninitialized storage.
2023-06-01 16:57:42 +00:00
Barnabás Pőcze
212c574821
pipewire: module-ffado-driver: don't have labels at the end
...
Labels are only allowed before statements before C23,
and clang does not support them as an extension in
gnu11 that pipewire uses, so add `break`s.
2023-06-01 16:56:59 +00:00
Wim Taymans
2cc0fe0b3c
module-netjack2: add netjack2 manager
...
This module listens for messages from netjack2 drivers and makes a sink
and source filter to send and receive data from the remote driver.
2023-06-01 18:36:07 +02:00
Wim Taymans
f8aa18c88b
module-netjack2: small improvements
2023-06-01 18:36:07 +02:00
Wim Taymans
52bc7451fd
filter: add support for TRIGGER
2023-06-01 18:36:07 +02:00
Wim Taymans
991a1558dc
module: add a netjack2 driver module
...
The module advertizes itself on multicast and will trigger a new client
in the netjack2 manager. Tested with jack2 and 'jack_load netmanager'.
The driver will receive and send data (no midi yet) from and to the
manager in sync with the manager, without resampling and with a fixed
latency.
2023-05-31 17:22:05 +02:00
Wim Taymans
d9e29e70f3
module-ffado: fix compilation with -UFASTPATH
2023-05-30 15:57:07 +02:00
Wim Taymans
149bb3eee8
module-ffado: set playback buffers as well
2023-05-29 09:17:08 +02:00
Wim Taymans
a4f6c02a7d
modules-ffado: add properties
2023-05-28 19:17:41 +02:00
Wim Taymans
3c44634dd8
modules: add ffado driver module
2023-05-28 15:53:58 +02:00
Wim Taymans
2ee7996cf7
impl-node: improve stats
...
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.
2023-05-25 20:22:49 +02:00
Wim Taymans
3d68c7124d
impl-node: drivers run remotely now
...
Remove some code now that drivers also run remotely.
2023-05-25 20:06:38 +02:00
Wim Taymans
a5b845650e
remote-node: only signal graph end when profiling
...
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.
2023-05-24 22:40:28 +02:00
Wim Taymans
5fcc0e1181
filter: fix warning
2023-05-24 18:24:06 +02:00
Wim Taymans
8303082024
stream: do fast calls for the process function
...
We checked it while registering.
2023-05-24 18:01:41 +02:00
Wim Taymans
004d3d900a
pulse-server: improve debug
2023-05-24 18:01:19 +02:00
Wim Taymans
3605eae6ad
impl-node: fix compilation
2023-05-24 17:38:40 +02:00
Wim Taymans
2994c48702
impl-node: only copy relevant fields from target
...
We can't copy the link or active state.
2023-05-24 14:35:47 +02:00
Wim Taymans
894eeae03c
impl-node: add id and name to pw_node_target
...
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.
2023-05-24 14:05:03 +02:00
Bennett Hardwick
4843928370
Fix jackdbus-detect module name in comment
2023-05-24 11:44:09 +00:00
Sebastian Jaeckel
dfeacaafdd
rtp-sap: use correct property key to get channel names
2023-05-24 08:32:42 +00:00
Sebastian Jaeckel
39d6e40abd
rtp-sap,AES67: reorder sdp records to be compatible with Dante/AES67 devices
...
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.
2023-05-24 08:32:42 +00:00
Sebastian Jaeckel
31ffa09c16
rtp-sap: use the ptime from the stream in the announcement and omit the decimal ms if they are 0
2023-05-24 08:32:42 +00:00
Sebastian Jaeckel
d08439316b
rtp/stream: calculate and format the ptime property as float
2023-05-24 08:32:42 +00:00
Wim Taymans
b74f2e19a7
impl-node: remove duplicated fields
...
Move all of the info to trigger a node into the target so that
we can copy it around easily.
2023-05-23 16:46:30 +02:00
Wim Taymans
bb72e3bc00
gst: fill default stride in metadata
...
When there is no metadata on the buffer, use the default video stride
as the stride on the pipewire buffers instead of 0.
Fixes #3236
2023-05-23 09:00:30 +02:00
Wim Taymans
b8fe832188
impl-node: run the remote driver node logic remotely
...
Don't signal the pipewire daemon to run the driver. We can transfer the
complete driver state to the client and run everything there.
2023-05-22 17:10:01 +02:00
Wim Taymans
a46076b207
Revert "impl-node: run the remote driver node logic remotely"
...
This reverts commit 2f67a6a5b4 .
This needs more work and makes easyeffects fail
2023-05-22 14:54:38 +02:00
Wim Taymans
79d1278b2e
fix -UFASTPATH compilation
2023-05-22 11:30:38 +02:00
Wim Taymans
46add98c0a
impl-node: remove warning
2023-05-22 11:06:49 +02:00
Wim Taymans
7ffe64f7af
client-node: make old driver nodes work
...
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.
2023-05-22 11:03:20 +02:00
Wim Taymans
0135a1fc05
client-node: signal graph complete
...
Use the writefd for waking up the server when the graph completed. Make
this emit the complete event so that the profiler can capture the
data.
2023-05-22 10:30:01 +02:00
Wim Taymans
5c7c12638d
impl-node: do stats at the end of the cycle
...
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.
2023-05-22 10:29:59 +02:00
Wim Taymans
2f67a6a5b4
impl-node: run the remote driver node logic remotely
...
Don't signal the pipewire daemon to run the driver. We can transfer the
complete driver state to the client and run everything there.
2023-05-22 10:29:13 +02:00
Wim Taymans
3f46044c39
impl-node: update xrun_count of late nodes
...
When the graph didn't complete, update the xrun_count in each node
that didn't complete.
We can then remove the code to simulate that from pw-top.
2023-05-22 10:24:51 +02:00
Wim Taymans
de9b28f783
context: don't use fallback driver if priority_driver <= 0
...
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
2023-05-22 09:48:51 +02:00
Wim Taymans
c5e1515b7a
context: add method to add/remove context listener
2023-05-21 15:45:45 +02:00
Pauli Virtanen
38860630a5
pulse-server: module-gsettings: check schemas exist before starting
...
Check the required GSettings schemas exist before trying to use them, as
g_settings_new aborts if they are missing. Instead, make it just log
errors.
2023-05-21 10:18:56 +00:00
Wim Taymans
9192892d08
impl-node: always resume non-driver nodes when finished
...
We don't really have a mechanism to do async resume and OK is now
emitted by the filter when nothing happened.
2023-05-19 18:07:53 +02:00
Wim Taymans
7da1094819
remote-node: update some internal state
...
This is not really used yet but when we get an activation record from
the server we can update the node stet some more.
2023-05-19 15:25:40 +02:00
Wim Taymans
f085a1fa49
impl-node: improve graph xrun detection
...
Simply check for the state of the activation.
2023-05-19 15:25:14 +02:00
Wim Taymans
606bbefaa4
filter: return better value from process()
2023-05-19 13:33:39 +02:00