Commit graph

53 commits

Author SHA1 Message Date
Wim Taymans
09feb8a18c module-rtp: improve ipv5 support
Use the IPV6 versions for loop and ttl. Improve debug.
2024-02-16 09:54:09 +01:00
Wim Taymans
49e7e3a0f0 module-rtp-sink: improve source.ip default
Use the default source.ip from the same address family as the
destination.ip.

See #3851
2024-02-15 15:31:54 +01:00
Jonas Holmberg
4715fa1775 module-rtp: Add source/destination.ip to props
Make it possible to change source.ip in module-rtp-source and
destination.ip in module-rtp-sink.
2024-02-08 09:30:58 +00:00
Wim Taymans
c37f9f9cf0 module-rtp: use sess.latency.msec also for sender
Use the sess.latency.msec also for the sender and use it to control the
NODE_LATENCY. Make it a float to be in line with the other time values.
Set is to a default of ptime, which was what it used to be.

This makes it possible to set the ptime to a smaller value than the
sess.latency.msec so that we send out multiple packets per quantum.
This will result in some bursty output for now but with a timer that can
be improved later.

Update the docs a little, mention the new rtp.ptime and rtp.frametime.
2024-01-25 15:49:41 +01:00
Dmitry Sharshakov
1fe6feac56 module-rtp: improve logging priorities
Previous state was useless for real debug at the current implementation level
2023-12-20 09:35:22 +00:00
Pauli Virtanen
fdcb02ed75 modules: add Module Name section to the module reference docs 2023-11-20 08:41:13 +00:00
Pauli Virtanen
eca773fc12 modules: strip "PipeWire Module:" from Doxygen page name
Make them appear nicer in the output.
2023-11-19 16:39:15 +00:00
Arun Raghavan
5617fa0501 module-rtp-sap/sink: try to bind sockets to an explicit interface 2023-10-24 07:17:21 +00:00
Sebastian Jaeckel
01d6724819 rtp-sink: fix ttl property which is NOT a bool 2023-05-12 14:34:17 +00:00
Wim Taymans
dd21ebf6b8 module-rtp: just log generic sendmsg error debug log 2023-04-19 21:34:39 +02:00
Wim Taymans
e5cf9ba1fd modules: update docs 2023-04-06 11:49:25 +02:00
Wim Taymans
07e6f44e58 modules: clean up USAGE arguments
use () to mark optional arguments to avoid confusion with arrays.
Add some more optional arguments.
2023-03-22 16:35:55 +01:00
Gleb Popov
b9c86f337d Add IPTOS_DSCP definition for !Linux platforms. 2023-03-15 16:53:41 +00:00
Wim Taymans
c5effbd979 module-rtp: add timer for ck requests
Scale RTP timestamps against the clock, allow some jitter.
Make method to query current RTP timestamps.
2023-03-09 13:14:23 +01:00
Wim Taymans
8e5b9da177 module-rtp: fix direct timestamps
fix some other properties.
2023-03-09 13:14:23 +01:00
Wim Taymans
3b685581a4 module-rtp: fix compilation 2023-03-09 13:14:23 +01:00
Wim Taymans
933743581b module-rtp: fix rtp.media property
Use sess.media for the media type (audio/midi) because rtp.media is used
in the SDP to describe the media (midi and audio are both are audio).
2023-03-09 13:14:22 +01:00
Wim Taymans
be09198249 module-rtp: port source and sink to new stream 2023-03-09 13:14:22 +01:00
Wim Taymans
9a6fa2e6a1 module-rtp: use new random functions 2023-03-09 13:14:22 +01:00
Wim Taymans
56d2e1e880 module-rtp: improve SSRC, seq and timestamp randomness 2023-03-09 13:14:22 +01:00
Wim Taymans
a015edb934 module-rtp: fix some memory leaks 2023-03-09 13:14:22 +01:00
Wim Taymans
e010559ffe module-rtp: don't autoconnect midi
Don't unload module for inactive source, we should signal the owner
of the module with a property update instead.
2023-03-09 13:14:22 +01:00
Wim Taymans
a48822c38a module-rtp: make source from module
Add match rules to SAP to decide when to announce and create RTP
streams.
Use SAP to load an RTP source.
Remove SAP code from RTP source.
2023-03-09 13:14:22 +01:00
Wim Taymans
cb1e5661dc move SAP in separate module
The idea is to have the rtp-source and rtp-sink be separate modules that
can be loaded a static ip/port as well.

The SAP module would then expose existing rtp-sinks or additionally load
rtp-sources based on SAP messages.

This makes things a bit more flexible when we also want to expose the
rtp-sink using zeroconf, for example.
2023-03-09 13:14:22 +01:00
Wim Taymans
7a923bc204 module-rtp-sink: use sess.media for media type
media.type is already taken.
2023-03-05 19:12:14 +01:00
Robert Rosengren
57a89e5723 module-rtp: Add configurable DSCP support
Add configurable DSCP support with the net.dscp option. Applying only on
RTP, not on SAP discovery.
2023-03-03 15:13:37 +00:00
Wim Taymans
fbd068977c module-rtp: Add rtp-midi support
Add rtp-midi support with the media.type = midi option
2023-02-16 16:47:29 +01:00
Barnabás Pőcze
934ab3036e treewide: use SPDX tags to specify copyright information
SPDX tags make the licensing information easy to understand and clear,
and they are machine parseable.

See https://spdx.dev for more information.
2023-02-16 10:54:48 +00:00
Wim Taymans
aa3b776f6f module-rtp: resync after paused state
After the paused state, resync to the new clock time.
2023-02-15 11:06:01 +01:00
Wim Taymans
7e2dab876a module-rtp-sink: handle buffer offset and size correctly 2023-02-02 16:08:40 +01:00
Wim Taymans
aed394cf89 module-rtp: use timestamps as ringbuffer index
Use the timestamps directly as the ringbuffer index. We can save some
conversions to bytes and there is a direct mapping to RTP timestamp,
clock position and ringbuffer index.

Simplify the source a little. Remove the buffering state, we always
start with read and write pointers separted by the target buffering.
2023-02-02 15:54:53 +01:00
Wim Taymans
b50fa83325 module-rtp-sink: improve sync
Always write to index of the clock, not just for the first packet.
This ensure the timestamp on the packet always matches the time it was
processed in the graph.
2023-02-01 20:06:19 +01:00
Wim Taymans
1a5de467db module-rtp: support direct clock timestamps
Always use the timestamp of the graph clock for RTP packets. Add an
option to apply a random or fixed offset.
Add a ts-refclk option on the sender to specify a reference clock to
use for timestamping. This will activate the direct timestamp mode and
signal this in the SDP.

Parse ts-refclk and ts-offset from the SDP. Make it possible to match
them in rules. Add option to activate the direct-timestamp, where the
rate matching is disabled and the timestamps are used directly for
writing and reading from the ringbuffer using the graph clock.

This makes it possible to set a PTP clock on sink and source and avoid
rate matching by using a shared clock.
2023-02-01 18:31:33 +01:00
Wim Taymans
8d4f7df9d6 module-rtp-sink: use min-ptime and max-ptime
Use the MTU, min-ptime and max-ptime to calculate the packet size to
send.
2023-01-25 17:08:10 +01:00
Wim Taymans
80a6880f33 module-rtp-sink: add tool and ptime attributes 2023-01-25 16:22:18 +01:00
Dmitry Sharshakov
4bf1c2946e module-rtp-sink: fix net.loop
Avoid uninitialized variable use
2023-01-25 10:39:24 +01:00
Wim Taymans
164e343dbf remove pipewire/private.h includes when possible
In many places this is not needed.
Expose pw_impl_node_set_param() for adapter.
2023-01-20 16:08:38 +01:00
Wim Taymans
f472fd736d fix includes
Only include debug we need. We usually only need the debug types.
2023-01-18 13:12:16 +01:00
Wim Taymans
9bf6fa05d1 module-rtp-sink: silence some messages 2022-12-08 12:10:22 +01:00
Gleb Popov
525e7aa734 FreeBSD build fixes. 2022-11-14 21:03:22 +03:00
Gleb Popov
018058ea35 Fix copy-paste typo in the warning message. 2022-11-14 20:58:14 +03:00
Wim Taymans
3e9b4657cb modules: add since tag 2022-10-13 13:16:33 +02:00
Wim Taymans
9dd1c78f50 module-rtp: for multicast we need to add the TTL 2022-10-07 16:40:04 +02:00
Wim Taymans
c06f936a88 module-rtp: improve properties 2022-10-07 16:12:22 +02:00
Wim Taymans
37f57dc09f module-rtp: add some more properties 2022-10-07 15:57:12 +02:00
Wim Taymans
f87654eb17 module-rtp: use MTU to set the latency 2022-10-07 12:59:29 +02:00
Wim Taymans
7fd16b8a77 module-rtp: set higher priotity on sender socket 2022-10-07 12:59:29 +02:00
Wim Taymans
4a41a03f5c module-rtp: fix L24 sample size 2022-10-06 16:16:49 +02:00
Wim Taymans
dfb6206207 module-rtp: support more formats 2022-10-06 16:04:15 +02:00
Wim Taymans
2edfea8b5b module-rtp: add pulse-server modules 2022-10-06 13:18:35 +02:00