Commit graph

33 commits

Author SHA1 Message Date
Wim Taymans
ec825086f1 module-rtp: use helpers to convert between samples and msec
And make sure we don't do any useless float to double conversions.
2024-01-25 15:30:04 +01:00
Wim Taymans
9458367a50 module-rtp: Fix framecount vs ptime check
We should use framecount instead of impl->psamples.
2024-01-25 15:12:25 +01:00
Wim Taymans
9a5609de2b modules: move some spa_debug_mem to the log
Instead of dumping to stderr, write it to the log file.
2024-01-11 17:49:50 +01:00
Dmitry Sharshakov
065e819f18 TODO: module-rtp: buffering for sender
This should be done to match packet size requirements (e.g. 1 ms) while allowing user's software to run at higher buffer size to not stutter.

This will require scheduling multiple rtp_audio_flush_packets calls per one rtp_audio_process_capture call
2023-12-20 09:35:22 +00:00
Dmitry Sharshakov
873e6119b8 module-rtp: handle framecount attribute 2023-12-20 09:35:22 +00:00
Dmitry Sharshakov
533161a766 module-rtp: add framecount to the SDP
Required for RAVENNA hardware.

Co-authored-by: Dewi Seignard <dewiweb@gmail.com>
2023-12-20 09:35:22 +00:00
Wim Taymans
5e750f6fb8 modules: place floats in properties in JSON format
Using %f will result in a locale dependent format and might not parse
with JSON parsers or even our own spa_atof() function.
2023-12-14 11:50:30 +01:00
Arun Raghavan
63bb128948 rtp-stream: Set rtp.ptime on senders not receivers
The pw_stream direction is inverted from what we want (input => sender).
2023-11-23 01:28:20 -05:00
Christian Glombek
cbac8c9040 module-rtp/stream: Add support for RAOP 2023-10-09 10:52:25 +02:00
Christian Glombek
8704aaa044 module-rtp/stream: Add getter for pw_stream state 2023-10-09 10:52:25 +02:00
Christian Glombek
89d935c9f6 module-rtp/stream: Add setter for property 2023-10-09 10:52:25 +02:00
Christian Glombek
1200bd7d20 module-rtp/stream: Add getter for property 2023-10-09 10:52:25 +02:00
Christian Glombek
35330cf461 module-rtp/stream: Add param_changed method
This method can be used to access the param_changed method of the
underlying pw_stream.

Also adds new public functions rtp_stream_set_param and
rtp_stream_update_params which plum things through to pw_stream_set_param
and pw_stream_update_params respectively.
2023-10-09 10:52:25 +02:00
Christian Glombek
9eba60a635 module-rtp/stream: Add ability to set marker on first packet 2023-10-09 10:52:25 +02:00
Wim Taymans
126e03ec73 rtp: add option to ignore SSRC
This is useful when there is a fixed receiver and the sender can be
restarted.
2023-07-06 12:55:28 +02:00
Dmitry Sharshakov
991e3928d4 rtp-stream: do not set false ptime values 2023-06-20 06:51:30 +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
6230154677 module-rtp: include config.h to get HAVE_OPUS 2023-03-13 12:50:32 +01:00
Wim Taymans
59d5d93878 module-rtp: fix compilation without opus 2023-03-12 19:04:14 +01:00
Wim Taymans
345582dd15 module-rtp: add opus encoding 2023-03-12 18:40:36 +01:00
Wim Taymans
bcc052f5f1 module-rtp: move stream init to specific media types
Move the stream function setup to a stream specific method.
Keep a separate stream format, that can be different later from the
rtp format once we add encoding.
Rename some methods to make them more unique.
2023-03-12 18:40:36 +01:00
Wim Taymans
f3230ca2e6 module-rtp: fix sender latency
The sender should ask for a latency that matches the packet size, not
the playout latency, that is for the receiver only.
2023-03-10 17:29:43 +01:00
Wim Taymans
f841a0d3f1 module-rtp: send journal feedback
Parse the journal and send feedback.
Handle the NO and RS commands.
2023-03-10 10:47:03 +01: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
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
7a31278511 module-rtp: improve properties and some cleanups 2023-03-09 13:14:22 +01:00
Wim Taymans
c46e021734 module-rtp: improve properties
Improve refclk and ts-offset handling.
Add some more properties to avahi
2023-03-09 13:14:22 +01:00
Wim Taymans
2c28047370 module-rtp: make the streams sink/source 2023-03-09 13:14:22 +01:00
Wim Taymans
bf9236ec8d module-rtp: improve node name and description
Don't auto connect audio either. There are more meant as source/sink
pairs.
2023-03-09 13:14:21 +01:00
Wim Taymans
7c04b42e38 module-rtp: improve properties 2023-03-09 13:14:21 +01:00
Wim Taymans
7da031c969 module-rtp: add new rtp-session module
The module uses the apple session setup for managing peer connections.

Make a generic rtp stream object, make midi and audio implementations.
2023-03-09 13:14:21 +01:00