Wim Taymans
e15b9e7f71
module-rtp: fix debug log
2024-02-16 12:37:40 +01:00
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
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
Wim Taymans
a00981ec20
module-rtp: clarify some docs
2024-01-16 15:48:24 +01:00
Jonas Holmberg
da8e207de9
module-rtp-source: Use source.ip for unicast
...
Only listen for packets from source.ip in the unicast (v4) case by
calling connect(). If packets from any source address is wanted, set
source.ip = "0.0.0.0".
2024-01-16 14:44:00 +00:00
Wim Taymans
fbaf4db6b0
modules: add source ip and port in stream props
2023-12-11 10:04:14 +01:00
Wim Taymans
f31d87cfee
modules: return -EINVAL on invalid port
2023-12-11 10:03:51 +01: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
Wim Taymans
6eb7eb7df2
modules: fix page ref
2023-09-07 16:30:46 +02:00
Wim Taymans
48a892aeec
module-rtp: support sess.ignore-ssrc globally
2023-07-06 13:08:21 +02:00
Wim Taymans
fd1fd7a00f
module-rtp-source: improve docs a little
2023-07-05 15:29:56 +02:00
Dmitry Sharshakov
6581d4ee2a
module-rtp-source: fix crash on stream deletion
2023-06-20 06:51:30 +00: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
Wim Taymans
167681104b
module-rtp: fix fd leak in error case
2023-03-16 12:28:51 +01:00
Wim Taymans
8e5b9da177
module-rtp: fix direct timestamps
...
fix some other properties.
2023-03-09 13:14:23 +01:00
Wim Taymans
9c45bb9c8d
module-rtp: use default source.ip
2023-03-09 13:14:22 +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
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
1c9ffef813
module-rtp: reset ringbuffer on resync
2023-02-17 15:38:11 +01:00
Wim Taymans
8eaf46a678
module-rtp: add rate matching for the source
...
correlate the timestamps against the graph clock and calculate a rate
correction. this smooths out the timestamps.
2023-02-17 11:23:51 +01: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
965b220206
module-rtp: clear ringbuffer in resync
...
When we resync to the timestamp, clear the ringbuffer to avoid playing
old stale samples.
2023-02-15 11:08:08 +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
16e995be26
module-rtp: remove some useless debug
2023-02-02 12:12:01 +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
fab9d12a44
module-rtp-source: use simple boolean to check activity
...
Avoid doing clock_gettime for each RTP packet and use a simple boolean
to check if packets arrived since the last SAP timeout check.
2023-01-27 11:49:20 +01:00
Dmitry Sharshakov
7b3d02b7fa
module-rtp-source: touch session on RTP
...
Don't time out while actually running
2023-01-27 10:35:44 +00:00
Dmitry Sharshakov
785694db31
module-rtp-source: close socket while idle
...
Reduce network bandwidth when many streams are present but not used
2023-01-27 10:35:44 +00:00
Dmitry Sharshakov
62766d8175
module-rtp-source: set custom channel names if available
...
Some AES67 devices set `i` attribute with necessary information
2023-01-27 10:35:44 +00:00
Wim Taymans
97dd95ddec
module-rtp-source: increase SAP timeout some more
...
Some AES67 senders need more time.
2023-01-26 09:09:46 +01:00
Wim Taymans
6e99ccb73e
module-rtp-source: increase overrun watermark a little
...
On Wifi we can get big bursts.
2023-01-25 17:23:52 +01:00
Wim Taymans
9fb44c3a71
module-rtp-source: improve buffer handling
...
Try to keep half the packet size in the ringbuffer as well. This helps
us adapt to the packet size of the sender.
Drop samples from the ringbuffer for the first packet we read. This
makes us lock onto the stream with the exact requested latency.
2023-01-25 16:23:00 +01:00
Wim Taymans
6a375d5778
module-rtp-source: add match rules
...
Add match rules so that one can select what SAP announcements to
listen to. Also make it possible to set per session latency.
2023-01-25 14:58:15 +01:00
Wim Taymans
b9a144e478
module-rtp: handle property failure better
...
The cleanup might want to iterate the session list so make sure it is
initialized.
2023-01-25 13:23:39 +01:00
Dmitry Sharshakov
f8dfdf7b99
module-rtp-source: lower priority of frequent messages
2023-01-25 10:37:14 +01:00
Dmitry Sharshakov
974a9019d1
module-rtp-source: lower overrun log level
2023-01-25 10:36:45 +01:00
Dmitry Sharshakov
8000a55654
module-rtp-source: make incoming RTP messages more elaborate
2023-01-25 10:36:32 +01:00
Dmitry Sharshakov
f59b652142
module-rtp-source: set node name
...
useful for Audio/Source role
2023-01-25 10:36:17 +01:00
Dmitry Sharshakov
f2c3baf93f
module-rtp-source: make SAP cleanup interval configurable
...
Audinate AES67 devices send SAP messages with 30-second interval, so hardcoded timeout has to be bumped. Just bumping it will reduce efficiency of common RTP module use-case, so a config is introduced for this. 70 second will be set as default for AES67 mode.
2023-01-25 10:36:08 +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
860b8fc27f
modules: fix rate update
...
Setting the rate with the PROP_rate would actually result in a rate
adjustment of 1.0f / rate, so do the same here.
See #2891
2022-12-29 12:22:56 +01:00
Wim Taymans
2f397035b8
modules: don't call pw_stream_set_control in process
...
pw_stream_set_control can only be used from the pipewire main_loop, not
the process callback. Instead, use the rate_match field directly.
Fixes #2633
2022-12-08 11:01:24 +01:00