Commit graph

3496 commits

Author SHA1 Message Date
Wim Taymans
ada2146692 jack-tunnel: improve port names
Prefix midi port names with midi_ and number ports from 1 instead
of 0.
2025-03-19 17:53:05 +01:00
Wim Taymans
a241495eaf jack-tunnel: support passing port names to link
Add jack.connect-audio and jack.connect-midi to specify an array of port
names to link to instead of the default phyisical ports.

Also actually fixes linking the midi ports correctly.
2025-03-19 17:53:05 +01:00
Wim Taymans
74035f0a34 rtp-sdp: format ptime in the C locale
Don't place locale dependent strings in the SDP.

Fixes #4615
2025-03-19 17:53:04 +01:00
Jan Palus
ef023916b9 module-roc: require roc >= 0.4.0
3270bd4 introduced changes reyling on features from roc 0.4.0
(upstream commit: d18d342)
2025-03-07 08:35:42 +00:00
Wim Taymans
3905e3b3d3 stream: set errno to the current error
Make the state_changed event and _get_state() function set errno with
the current error value if the state is in error, so that application
can use this to give more detailed error reporting.

Use this in alsa, v4l2 and pulse to give some other error codes than
EIO.

Fixes #4574
2025-03-04 13:22:51 +01:00
Wim Taymans
fb4475b5da adapter: evaluate node rules before loading the follower
So that the right node.rules are applied to the follower.

See #4562
2025-02-20 17:06:24 +01:00
Wim Taymans
e825a6ae6c modules: reduce some errors from warn to info
Some of the more common errors (caused by packet loss, network jitter, ...)
should be reported with INFO unless there is some indication about how
to fix the problem.

Fixes #4559
2025-02-18 16:24:52 +01:00
Wim Taymans
3270bd4552 module-roc: add some more options
To configure the resampler backend and latency-tuner. This is mostly
to work around potential bugs in the ROC resampler backend.

See #4516
2025-02-18 15:51:39 +01:00
Wim Taymans
62035963a3 protocol-native: support abstract socket addresses
They start with @ and do not create a file in the file system.
2025-02-17 16:50:16 +01:00
Wim Taymans
cfc8d414a9 module-rtp: fix SSRC warnings
Fix indentation and also suppress the SSRC warning for other formats
than audio.
2025-02-17 10:21:17 +01:00
Arun Raghavan
5e295815bf module-rtp-sap: Add a couple of SDP parsing validations 2025-02-15 22:42:46 -05:00
Arun Raghavan
25e58995f5 module-rtp-sap: Silently ignore other SSRCs if we know the receiver SSRC
If we know the receiver SSRC from the SAP, we can happily ignore packets
on other SSRCs.
2025-02-15 22:32:12 -05:00
Arun Raghavan
13e3918f81 module-rtp-sap: Publish sender SSRC if we have it
Can be handy on the receiver side.
2025-02-15 17:58:34 -05:00
Arun Raghavan
dbf0442c7e module-rtp-sap: Fix sending first session SDP
We don't initially have the SAP socket open, so we can't generate an SDP
(because we don't have the interface address). So in addition to the
regular flow, also trigger SDP creation after opening the SAP socket, so
we can have a valid SDP for the announcement.

The sending was broken in commit a44afd84. We delay the SAP fd openeing
for reasons explained in commit f2f204d6).
2025-02-15 17:58:34 -05:00
Wim Taymans
f8272c767f profiler: scale quantum with rate
When we have a forced or suggested rate, adjust the latency with the
new denominator.

Fixes #4555
2025-02-15 14:09:25 +01:00
Wim Taymans
1c9b5fd258 link: deprectate using port.id in link-factory
It is ambiguous when the port.id also matches a port object.id.
2025-02-14 11:19:54 +01:00
Wim Taymans
152acf69c2 link-factory: check that the port belongs to the node
When both node and port are given, check that the port belongs to the
node. If it doesn't, it could be that we found a Port using the
object.id but we should have used the port.id of the node.
2025-02-14 10:58:11 +01:00
Wim Taymans
cfddbb033a doc: clarify the port id
It might be confused with port.id to state explicitly that this is
actually the object.id of a port.
2025-02-13 21:11:06 +01:00
Wim Taymans
27e0338f24 pulse-server: clarify pulse.rules properties 2025-02-12 15:19:29 +01:00
Jonas Holmberg
c68b20e59b module-rt: Don't warn when rtkit is disabled
Change warning to info level for the message that is logged when regular
realtime isn't available and rtkit fallback is disabled in config.
2025-02-05 10:41:49 +01:00
Arun Raghavan
9ca9579978 rtp: Initialise source receiving state to true be default
Because we don't know the stream state at the start of streaming, if
clients are deciding to connect on the basis of this flag, they will
never connect if we default to true. So let's be optimistic by default
and we'll find out on timeout if there actually isn't data to receive.
2025-01-29 14:21:48 +00:00
Wim Taymans
516f86c329 protocol: improve manager socket handling
Some of the tools would like to connect to the manager socket first
because they are manager style apps. They however completely ignore any
of the configured sockets in the config and assume everything is the
default.

Fix this by adding a remote.intention = "manager" to those apps. This
instructs the protocol to first try to connect to a socket with the
-manager extension before attempting the regular configured socket.

This makes things work when you have sockets configured in /tmp
and have remote.name = /tmp/pipewire-0 in the config.
2025-01-29 12:59:45 +01:00
Wim Taymans
546de65c67 pulse: sanitize the remote name
We use the remote name as a suffix for the default server address and so
it should not contain any slashes. Take everything after the last slash
if there is one.
2025-01-29 12:09:36 +01:00
Wim Taymans
70ca546c6a protocol-native: don't overwrite the intention with remote.name 2025-01-29 12:08:20 +01:00
Wim Taymans
5765ac61ab doc: move modules around to add to docs 2025-01-28 12:33:47 +01:00
Wim Taymans
636c5373c7 doc: add SPA modules 2025-01-28 11:48:58 +01:00
Wim Taymans
f60fe6d6e4 docs: add more docs for the SPA modules 2025-01-28 10:33:05 +01:00
Wim Taymans
73e7f61d8c modules: add more docs 2025-01-28 10:13:59 +01:00
Wim Taymans
4e3d5e2ac5 modules: add some more docs 2025-01-28 09:59:37 +01:00
Wim Taymans
4d5ed3f292 modules: document metadata module 2025-01-27 16:13:14 +01:00
Wim Taymans
e210925c24 modules: document the metadata factory a little 2025-01-27 15:52:48 +01:00
Wim Taymans
aecb406a96 modules: document link-factory context.objects 2025-01-27 15:24:42 +01:00
Wim Taymans
eb462302b7 docs: fix indentation of properties 2025-01-24 16:23:01 +01:00
Wim Taymans
5d35986329 doc: document module-link-factory 2025-01-24 15:35:46 +01:00
Wim Taymans
19d78ef195 module: improve loopback docs 2025-01-24 13:13:23 +01:00
Wim Taymans
40c1552402 modules: improve profiler docs
The profiler now can have arguments.
2025-01-24 12:53:13 +01:00
Wim Taymans
830bd19ca2 rtp: take into account ipv4/ipv6 when calculating header size
Calculate the header_size based on the IP version instead of using a
hardcoded value.

Fixes #4524
2025-01-24 12:45:05 +01:00
Wim Taymans
96d593cc34 rtp: idle the source when in timeout
Idle the source when no packets are received and resume when new packets
arrive.

Add a stream.may-pause property to pause the stream when no packets are
received during the timeout window.

Make sure the rtp.streaming property is updated correctly and as soon as
we get the first packet.

Fixes #4456
2025-01-21 16:51:31 +01:00
Wim Taymans
a44afd84ff sap: only send bye + new SAP when SDP changed
Reorganize some code to separate the creation and sending of the SAP
message.

Check if when the node changed, we have an actual change in the SDP
before we send BYE and the new SAP message. It's possible that nothing
changed, for example when the node simply changed state or an unrelated
property.
2025-01-21 15:43:10 +01:00
Wim Taymans
4b24619160 rtp-source: avoid bitfield races
The different bits are written to from different threads.
2025-01-20 14:00:21 +01:00
Wim Taymans
c62905d911 pulse-server: clear old data when jumping forwards
When we write samples, check if we make a jump in the ringbuffer and
clear the samples we jumped over.

If we don't do this, the reader side might pick up old samples that we
didn't write or clear but that are now available for reading after we
made a jump in the ringbuffer.

This migh not be exactly what pulseaudio does but it is good for now.

Fixes #4464
2025-01-16 16:21:22 +01:00
Wim Taymans
cf7e917024 pulse-server: make a function to silence a buffer 2025-01-16 16:16:39 +01:00
Wim Taymans
1030000890 network-utils: handle inet_ntop errors 2025-01-09 16:28:51 +01:00
Wim Taymans
feaa36560d pulse-server: increase max rate to 768000
Fixes #4482
2025-01-08 17:23:15 +01:00
Wim Taymans
3cf9ccf4a7 filter-graph: handle NULL in and out
We need to pass exactly n_inputs and n_outputs pointers to the process
function but make it possible to set some to NULL so that the data is
ignored.
2025-01-07 10:42:04 +01:00
Wim Taymans
49f48a5fda filter-graph: separate data and size for filter graph
Remove the chunk and add separate arrays with data and n_samples. This aligns
better with other methods and makes it possible to more easily reuse
arrays of pointers as input and output.
2025-01-07 10:38:32 +01:00
Wim Taymans
9f9e962dd6 filter-graph: pass spa_pod in get_props 2025-01-07 09:31:48 +01:00
Wim Taymans
c5ae456b9e filter-graph: pass dict to activate functions
This makes it possible to expand it more later.
2025-01-07 09:23:23 +01:00
Arun Raghavan
974117f41a module-rtp: Fix previous typo fix
We want to track the difference between the PTP timestamp (now) and the
last RTP send, not the synthesized next RTP timestamp (which will always
be smoothly incrementing).
2024-12-31 15:24:46 -05:00
Arun Raghavan
c143e89118 module-rtp: Fix typo in check for lagging sender 2024-12-31 11:58:03 -05:00