Matthew Waters
260b04a1cf
rtpbin2: protoct against adding with overflow
...
If jitter is really bad, then this calculation may overflow. Protect
against that.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1605 >
2024-06-06 11:43:26 +00:00
Matthew Waters
df32e1ebfa
rtpsend: ensure only a single rtcp pad push
...
Otherwise, it can occur that multiple rtcp packets may be produced out
of order.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1426 >
2024-05-28 19:58:09 +10:00
Matthew Waters
525179f666
rtpbin2: handle ssrc collisions
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1426 >
2024-05-28 19:58:09 +10:00
Matthew Waters
1600d3b055
rtpbin2: split send and receive halves into separate elements
...
There is now two elements, rtpsend and rtprecv that represent the two
halves of a rtpsession. This avoids the potential pipeline loop if two
peers are sending/receiving data towards each other. The two halves can
be connected by setting the rtp-id property on each element to the same
value and they will behave like a combined rtpbin-like element.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1426 >
2024-05-28 19:58:09 +10:00
Matthew Waters
0121d78482
rtpbin2: expose session signals for new/bye ssrc
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1426 >
2024-05-28 19:58:09 +10:00
Matthew Waters
d480c6c2d3
rtpbin2/config: add stats to session GObject
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1426 >
2024-05-28 19:58:09 +10:00
Matthew Waters
7d5789032a
rtpbin2/config: add a new-ssrc signal
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1426 >
2024-05-28 19:58:09 +10:00
Matthew Waters
06f40e72cb
rtpbin2: implement a session configuration object
...
Currently only contains pt-map
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1426 >
2024-05-28 19:58:09 +10:00
Matthew Waters
48e7a2ed06
jitterbuffer: handle flush-start/stop
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1426 >
2024-05-28 19:58:09 +10:00
Matthew Waters
66306e32f2
jitterbuffer: remove mpsc channel for every packet
...
It is very slow.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1426 >
2024-05-28 19:58:09 +10:00
Mathieu Duponchelle
327f563e80
jitterbuffer: implement support for serialized events / queries
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1426 >
2024-05-28 19:58:09 +10:00
Mathieu Duponchelle
74ec83a0ff
rtpbin2: implement and use synchronization context
...
Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
Co-Authored-By: Matthew Waters <matthew@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1426 >
2024-05-28 19:58:09 +10:00
Mathieu Duponchelle
1865899621
rtpbin2: implement jitterbuffer
...
The jitterbuffer implements both reordering and duplicate packet
handling.
Co-Authored-By: Sebastian Dröge <sebastian@centricular.com>
Co-Authored-By: Matthew Waters <matthew@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1426 >
2024-05-28 17:35:41 +10:00
Sebastian Dröge
2b4ec75bc5
rtpbin2: Add support for receiving rtcp-mux packets
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1426 >
2024-05-28 17:35:41 +10:00
Sebastian Dröge
e09ad990fa
rtpbin2: Implement support for reduced size RTCP (RFC 5506)
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1426 >
2024-05-28 17:35:41 +10:00
Sebastian Dröge
1e4a966c92
rtpbin2: Add support for sending NACK/PLI and FIR
...
Co-Authored-By: Matthew Waters <matthew@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1426 >
2024-05-28 17:35:41 +10:00
Sebastian Dröge
66c9840ad8
rtpbin2: Add handling for receiving NACK/PLI and FIR
...
Co-Authored-By: Matthew Waters <matthew@centricular.com>
Co-Authored-By: Mathieu Duponchelle <mathieu@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1426 >
2024-05-28 17:35:41 +10:00
Matthew Waters
2c86f18a99
rtpbin2: add support for RFC 4585 (RTP/AVPF)
...
Implements the timing rules for RTP/AVPF
Co-Authored-By: Sebastian Dröge <sebastian@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1426 >
2024-05-28 17:35:41 +10:00
Matthew Waters
27ad26c258
rtp: Initial rtpbin2 element
...
Can receive and recevie one or more RTP sessions containing multiple
pt/ssrc combinations.
Demultiplexing happens internally instead of relying on separate
elements.
Co-Authored-By: François Laignel <francois@centricular.com>
Co-Authored-By: Mathieu Duponchelle <mathieu@centricular.com>
Co-Authored-By: Sebastian Dröge <sebastian@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1426 >
2024-05-28 17:35:41 +10:00