Matthew Waters
b51eeb8ea1
Merge branch 'rtp2' into 'main'
...
Draft: rtp: new rtpbin2 element
See merge request gstreamer/gst-plugins-rs!1426
2024-03-19 08:09:49 +00:00
Guillaume Desmottes
96337d5234
webrtc: allow resolution and framerate input changes
...
Some changes do not require a WebRTC renegotiation so we can allow
those.
Fix #515
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1498 >
2024-03-18 14:52:01 +01:00
Tim-Philipp Müller
eb49459937
rtp: m2pt: add some unit tests
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1493 >
2024-03-16 10:07:37 +00:00
Tim-Philipp Müller
ce3960f37f
rtp: Add MPEG-TS RTP payloader
...
Pushes out pending TS packets on EOS.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1493 >
2024-03-16 10:07:37 +00:00
Tim-Philipp Müller
9f07ec35e6
rtp: Add MPEG-TS RTP depayloader
...
Can handle different packet sizes, also see:
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1310
Has clock-rate=90000 as spec prescribes, see:
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/691
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1493 >
2024-03-16 10:07:37 +00:00
Mathieu Duponchelle
f4366f8b2e
gstregex: add support for switches exposed by RegexBuilder
...
The builder allows for instance for switching off case-sensitiveness for
the entire pattern, instead of having to do so inline with `(?i)`.
All the options exposed by the builder at
<https://docs.rs/regex/latest/regex/struct.RegexBuilder.html > can now be
passed as fields of invidual commands, snake-cased.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1497 >
2024-03-15 17:41:39 +00:00
Guillaume Desmottes
523a46b4f5
gtk4: scale texture position
...
Fix regression in 0.12 introduced by 3423d05f77
Code from Ivan Molodetskikh suggested on Matrix.
Fix #519
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1499 >
2024-03-15 13:43:32 +01:00
Nirbheek Chauhan
0c033f65ce
rtspsrc2: Update rtpbin2 support to use rtprecv and rtpsend
...
USE_RTPBIN2 is now USE_RTP2 because there is no "rtpbin2" now.
2024-03-14 17:54:59 +05:30
Matthew Waters
e3458bb58b
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.
2024-03-14 23:22:43 +11:00
Nirbheek Chauhan
6f8fc5f178
meson: Disable docs completely when the option is disabled
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1496 >
2024-03-14 15:30:17 +05:30
Matthew Waters
7b67c87dda
rtpbin2: expose session signals for new/bye ssrc
2024-03-14 19:20:00 +11:00
Matthew Waters
36cf3f6aae
rtpbin2/config: add stats to session GObject
2024-03-14 19:20:00 +11:00
Matthew Waters
7e79d91580
rtpbin2/config: add a new-ssrc signal
2024-03-14 19:20:00 +11:00
Matthew Waters
041fbebe70
rtpbin2: implement a session configuration object
...
Currently only contains pt-map
2024-03-14 19:20:00 +11:00
Matthew Waters
9146d3dfb5
jitterbuffer: handle flush-start/stop
2024-03-14 19:20:00 +11:00
Matthew Waters
2c70a313e7
jitterbuffer: remove mpsc channel for every packet
...
It is very slow.
2024-03-14 19:20:00 +11:00
Mathieu Duponchelle
9e50a31dbc
jitterbuffer: implement support for serialized events / queries
2024-03-14 19:20:00 +11:00
Mathieu Duponchelle
93666313a5
rtpbin2: implement and use synchronization context
...
Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
Co-Authored-By: Matthew Waters <matthew@centricular.com>
2024-03-14 19:20:00 +11:00
Mathieu Duponchelle
509b615ba4
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>
2024-03-14 19:20:00 +11:00
Sebastian Dröge
52ea10c03a
rtpbin2: Add support for receiving rtcp-mux packets
2024-03-14 19:20:00 +11:00
Sebastian Dröge
726e6b6e49
rtpbin2: Implement support for reduced size RTCP (RFC 5506)
2024-03-14 19:20:00 +11:00
Sebastian Dröge
9817145910
rtpbin2: Add support for sending NACK/PLI and FIR
...
Co-Authored-By: Matthew Waters <matthew@centricular.com>
2024-03-14 19:20:00 +11:00
Sebastian Dröge
9a9a30bf10
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>
2024-03-14 19:20:00 +11:00
Matthew Waters
1c04618f8d
rtpbin2: add support for RFC 4585 (RTP/AVPF)
...
Implements the timing rules for RTP/AVPF
Co-Authored-By: Sebastian Dröge <sebastian@centricular.com>
2024-03-14 19:20:00 +11:00
Matthew Waters
513c4bb9e1
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>
2024-03-14 19:19:58 +11:00
Guillaume Desmottes
8f997ea4e3
webrtc: janus: handle 'hangup' messages from Janus
...
Fix error about this message not being handled:
{
"janus": "hangup",
"session_id": 4758817463851315,
"sender": 4126342934227009,
"reason": "Close PC"
}
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1481 >
2024-03-13 10:14:38 +00:00
Guillaume Desmottes
992f8d9a5d
webrtc: janus: handle 'destroyed' messages from Janus
...
Fix this error when the room is destroyed:
ERROR webrtc-janusvr-signaller imp.rs:413:gstrswebrtc::janusvr_signaller:👿 :Signaller::handle_msg:<GstJanusVRWebRTCSignallerU64@0x55b166a3fe40> Unknown message from server: {
"janus": "event",
"session_id": 6667171862739941,
"sender": 1964690595468240,
"plugindata": {
"plugin": "janus.plugin.videoroom",
"data": {
"videoroom": "destroyed",
"room": 8320333573294267
}
}
}
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1481 >
2024-03-13 10:14:38 +00:00
Guillaume Desmottes
9c6a39d692
webrtc: janus: handle (stopped-)talking events
...
Expose those events using a signal.
Fix those errors when joining a Janus room configured with
'audiolevel_event: true'.
ERROR webrtc-janusvr-signaller imp.rs:408:gstrswebrtc::janusvr_signaller:👿 :Signaller::handle_msg:<GstJanusVRWebRTCSignaller@0x560cf2a55100> Unknown message from server: {
"janus": "event",
"session_id": 2384862538500481,
"sender": 1867822625190966,
"plugindata": {
"plugin": "janus.plugin.videoroom",
"data": {
"videoroom": "talking",
"room": 7564250471742314,
"id": 6815475717947398,
"mindex": 0,
"mid": "0",
"audio-level-dBov-avg": 37.939998626708984
}
}
}
ERROR webrtc-janusvr-signaller imp.rs:408:gstrswebrtc::janusvr_signaller:👿 :Signaller::handle_msg:<GstJanusVRWebRTCSignaller@0x560cf2a55100> Unknown message from server: {
"janus": "event",
"session_id": 2384862538500481,
"sender": 1867822625190966,
"plugindata": {
"plugin": "janus.plugin.videoroom",
"data": {
"videoroom": "stopped-talking",
"room": 7564250471742314,
"id": 6815475717947398,
"mindex": 0,
"mid": "0",
"audio-level-dBov-avg": 40.400001525878906
}
}
}
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1481 >
2024-03-13 10:14:38 +00:00
Guillaume Desmottes
b29a739fb2
uriplaylistbin: disable racy test
...
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/514
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1494 >
2024-03-12 16:57:22 +01:00
Guillaume Desmottes
1dea8f60a8
threadshare: disable racy tests
...
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/250
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1494 >
2024-03-12 16:54:21 +01:00
Guillaume Desmottes
2629719b4e
livesync: disable racy tests
...
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/328
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/357
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1494 >
2024-03-12 16:32:47 +01:00
Guillaume Desmottes
9e6e8c618e
togglerecord: disable racy test_two_stream_close_open_nonlivein_liveout test
...
See https://gitlab.freedesktop.org/gdesmott/gst-plugins-rs/-/jobs/56183085
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1494 >
2024-03-12 16:21:52 +01:00
François Laignel
995f64513d
Update Cargo.lock to use latest gstreamer-rs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1491 >
2024-03-11 14:42:36 +01:00
François Laignel
5b01e43a12
webrtc: update further to WebRTCSessionDescription sdp accessor changes
...
See: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1406
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1491 >
2024-03-11 13:39:19 +01:00
Guillaume Desmottes
03abb5c681
spotify: document how to use with non Facebook accounts
...
See discussion on #203 .
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1490 >
2024-03-11 09:46:40 +01:00
Zhao, Gang
7a46377627
rtp: tests: Simplify loop
...
All buffers can be added in 100 outer loops. Add buffer less than 200 in the last (i = 99) loop.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1489 >
2024-03-10 16:47:30 +08:00
Olivier Crête
15e7a63e7b
originalbuffer: Pair of elements to keep and restore original buffer
...
The goal is to be able to get back the original buffer
after performing analysis on a transformed version. Then put the
various GstMeta back on the original buffer.
An example pipeline would be
.. ! originalbuffersave ! videoscale ! analysis ! originalbufferestore ! draw_overlay ! sink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1428 >
2024-03-08 15:15:13 -05:00
Guillaume Desmottes
612f863ee9
webrtc: janusvrwebrtcsink: add 'use-string-ids' property
...
Instead of exposing all ids properties as strings, we now have two
signaller implementations exposing those properties using their actual
type. This API is more natural and save the element and application
conversions when using numerical ids (Janus's default).
I also removed the 'joined-id' property as it's actually the same id as
'feed-id'. I think it would be better to have a 'janus-state' property or
something like that for applications willing to know when the room has
been joined.
This id is also no longer generated by the element by default, as Janus
will take care of generating one if not provided.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1486 >
2024-03-07 09:34:58 +01:00
Seungha Yang
237f22d131
sccparse: Ignore invalid timecode during seek as well
...
sccparse holds last timecode in order to ignore invalid timecode
and fallback to the previous timecode. That should happen
when sccparse is handling seek event too. Otherwise single invalid
timecode before the target seek position will cause flow error.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1485 >
2024-03-06 11:12:04 +00:00
Sebastian Dröge
2839e0078b
rtp: Port RTP AV1 payloader/depayloader to new base classes
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1472 >
2024-03-06 09:40:35 +00:00
Jordan Yelloz
0414f468c6
livekit_signaller: Added missing getter for excluded-producer-peer-ids
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1484 >
2024-03-04 10:08:11 -07:00
Jordan Yelloz
8b0731b5a2
webrtcsrc: Removed incorrect URIHandler from LiveKit source
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1484 >
2024-03-04 09:44:01 -07:00
Guillaume Desmottes
7d0397e1ad
uriplaylistbin: re-enable all tests
...
They now seem to work reliably. \o/
Fix #194
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1471 >
2024-03-04 12:00:13 +01:00
Guillaume Desmottes
f6476f1e8f
uriplaylistbin: use vp9 in test media
...
The Windows CI runner does not have a Theora decoder so those tests were
failing there.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1471 >
2024-03-04 12:00:13 +01:00
Guillaume Desmottes
cfebc32b82
uriplaylistbin: tests: use fakesink sync=true
...
Tests is more reliable when using sync sink.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1471 >
2024-03-04 11:17:11 +01:00
Guillaume Desmottes
721b7e9c8c
uriplaylistbin: rely on new uridecodebin3 gapless logic
...
uridecodebin3 can now properly handle gapless switches so use that
instead of our own very complicated logic.
Fix #268
Fix #193
Depends on gst 1.23.90 as the plugin requires recent fixes to work properly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1471 >
2024-03-04 11:17:11 +01:00
Guillaume Desmottes
1e88971ec8
uriplaylistbin: pass valid URI in tests
...
Fix critical raised by libsoup,
see https://gitlab.gnome.org/GNOME/libsoup/-/merge_requests/346
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1471 >
2024-03-04 11:06:19 +01:00
Sebastian Dröge
8a6bcb712f
Remove empty line from the CHANGELOG.md that confuses the GitLab renderer
2024-03-01 16:46:21 +02:00
Jordan Yelloz
002dc36ab9
livekit_signaller: Improved shutdown behavior
...
Without sending a Leave request to the server before disconnecting, the
disconnected client will appear present and stuck in the room for a little
while until the server removes it due to inactivity.
After this change, the disconnecting client will immediately leave the room.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1482 >
2024-02-29 08:21:13 -07:00
Sebastian Dröge
9c590f4223
Update Cargo.lock
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1483 >
2024-02-29 10:09:09 +00:00