Sebastian Dröge
4677948a82
rtp: av1pay: Derive Default trait for the state instead of manual implementation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1624 >
2024-06-18 08:07:24 +03:00
Sebastian Dröge
d357a63bf9
rtp: av1pay: Correctly use N flag for marking keyframes
...
The "first packet of a coded video sequence" means that this should be
the first packet of a keyframe that comes together with a sequence
header, not the first packet of a new frame.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/558
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1624 >
2024-06-18 08:06:59 +03:00
Sebastian Dröge
5cd9e34265
rtp: av1pay: Correctly skip over ignored OBUs
...
The reader is already after the header at this point so only the OBU
content has to be skipped.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1624 >
2024-06-18 08:06:59 +03:00
Sebastian Dröge
bbe38b9599
rtp: av1: Drop padding OBUs too like Chrome does
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1624 >
2024-06-18 08:06:59 +03:00
Arun Raghavan
b4b56eb282
aws: s3: Re-enable tests
...
These seem to have stopped working due to bad/rotated creds. Should work
fine now.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1623 >
2024-06-17 06:08:18 -04:00
Sebastian Dröge
343680ffea
rtp: av1depay: Don't return an error if parsing a packet fails
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1612 >
2024-06-14 13:13:21 +00:00
Sebastian Dröge
477855789d
rtp: av1depay: Also log warnings on errors
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1612 >
2024-06-14 13:13:21 +00:00
Sebastian Dröge
93c9821cba
rtp: av1depay: Drop unusable packets as early as possible
...
Otherwise they would pile up until a discontinuity or until we can
actually output something.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1612 >
2024-06-14 13:13:21 +00:00
Sebastian Dröge
0ca4a3778a
rtp: av1depay: Parse internal size fields of OBUs and handle them
...
They're not recommended by the spec to include in the RTP packets but it
is valid to include them. Pion is including them.
When parsing the size fields also make sure to only take that much of a
payload unit and to skip any trailing data (which should not exist in
the first place).
Pion is also currently storing multiple OBUs in a single payload unit,
which is not allowed by the spec but can be easily handled with this
code now.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/560
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1612 >
2024-06-14 13:13:21 +00:00
Sebastian Dröge
69c3c2ae46
Fix various new clippy 1.79 warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1620 >
2024-06-14 08:33:49 +03:00
Sebastian Dröge
3d4d785a2a
webrtchttp: Fix race condition when unlocking
...
It would be possible that there is no cancellable yet when unlock() is
called, then a new future is executed and it wouldn't have any
information that it is not supposed to run at all.
To solve this remember if cancellation should happen and reset this
later.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1602 >
2024-06-10 07:38:29 +00:00
Sebastian Dröge
51f6d3986f
aws: Fix race condition when unlocking
...
It would be possible that there is no cancellable yet when unlock() is
called, then a new future is executed and it wouldn't have any
information that it is not supposed to run at all.
To solve this remember if unlock() was called and reset this in
unlock_stop().
Also implement actual unlocking in s3hlssink.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1602 >
2024-06-10 07:38:29 +00:00
Sebastian Dröge
00aaecad07
quinn: Fix race condition when unlocking
...
It would be possible that there is no cancellable yet when unlock() is
called, then a new future is executed and it wouldn't have any
information that it is not supposed to run at all.
To solve this remember if unlock() was called and reset this in
unlock_stop().
Also actually implement unlock() / unlock_stop() for the sink, and don't
cancel in stop() as unlock() / unlock_stop() would've been called before
that already.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1602 >
2024-06-10 07:38:29 +00:00
Sebastian Dröge
9945b702b8
reqwesthttpsrc: Fix race condition when unlocking
...
It would be possible that there is no cancellable yet when unlock() is
called, then a new future is executed and it wouldn't have any
information that it is not supposed to run at all.
To solve this remember if unlock() was called and reset this in
unlock_stop().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1602 >
2024-06-10 07:38:29 +00:00
Sebastian Dröge
f68655b5e2
Update for gst::BufferList
API changes
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1610 >
2024-06-08 09:58:10 +03:00
Sebastian Dröge
30252a1b2e
ndi: Add support for loading NDI SDK v6
...
The library name and environment variable name have changed but the ABI
is completely compatible.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1607 >
2024-06-06 14:51:09 +00:00
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
Sebastian Dröge
ba70bb1154
deny: Add override for older tungstenite
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1603 >
2024-06-06 10:34:12 +00:00
Sebastian Dröge
85c38107cf
webrtc: Update to async-tungstenite 0.26
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1603 >
2024-06-06 10:34:12 +00:00
Sanchayan Maity
8171a00943
net/quinn: Fix pad template naming typo
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1601 >
2024-06-05 13:44:40 +05:30
Tim-Philipp Müller
ab2f5e3d8d
rtp: ac3: add some unit tests
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1586 >
2024-06-01 12:43:27 +00:00
Tim-Philipp Müller
2b68920f82
rtp: tests: add possibility to make input live
...
.. for payloaders that behave differently with live
and non-live inputs (e.g. audio payloaders which by
default will pick different aggregation modes based
on that.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1586 >
2024-06-01 12:43:27 +00:00
Tim-Philipp Müller
6597ec84eb
rtp: tests: add possibility to check duration of depayloaded buffers
...
.. and clarify an expect panic message.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1586 >
2024-06-01 12:43:27 +00:00
Tim-Philipp Müller
6b628485c5
rtp: Add AC-3 RTP payloader/depayloader
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1586 >
2024-06-01 12:43:27 +00:00
Tamas Levai
802ff6a67c
net/quinn: Make QUIC role configurable
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1575 >
2024-05-31 23:20:38 +02:00
Francisco Javier Velázquez-García
8fc652f208
webrtcsink: Refactor value retrieval to avoid lock poisoning
...
When setting an incorrect property name in settings,
start_stream_discovery_if_needed would panic because it attempts to
unwrap a poisoned lock for settings.
This refactor avoids that situation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1594 >
2024-05-31 08:10:23 +00:00
Francisco Javier Velázquez-García
568e8533fa
webrtcsink: Fix typo in property name for av1enc
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1594 >
2024-05-31 08:10:23 +00:00
Arun Raghavan
04e9e5284c
webrtc: signaller: A couple of minor doc fixups
...
The expectation is `Returns:`, not `Return:`
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1525 >
2024-05-30 22:16:46 +03:00
Arun Raghavan
1c54c77840
webrtcsink: Add a mechanism for SDP munging
...
Unfortunately, server implementations might have odd SDP-related quirks,
so let's allow clients a way to work around these oddities themselves.
For now, this means that a client can fix up the H.264 profile-level-id
as required by Twitch (whose media pipeline is more permissive than the
WHIP implementation).
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/516
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1525 >
2024-05-30 22:16:46 +03:00
Taruntej Kanakamalla
83f76280f5
net/webrtc: Example for whipserver
...
rudimentary sample to test multiple WHIP client connections
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1339 >
2024-05-29 21:03:27 +00:00
Taruntej Kanakamalla
712d4757c3
net/webrtc/whip_signaller: multiple client support in the server
...
- generate a new session id for every new client
use the session id in the resource url
- remove the producer-peer-id property in the WhipServer signaler as it
is redundant to have producer id in a session having only one producer
- read the 'producer-peer-id' property on the signaller conditionally
if it exists else use the session id as producer id
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1339 >
2024-05-29 21:03:27 +00:00
Taruntej Kanakamalla
de726ca8d2
net/webrtc: multi producer support in webrtcsrc
...
- Add a new structure Session
- manage each producer using a session
- avoid send EOS when a session terminates, instead keep running
waiting for any new producer to connect
- Maintain a bin element per session
- each session bin encapsulates webrtcbin and the decoder if needed
as well as the parser and filter if requested by the application
(through request-encoded-filter)
- this will be helpful to cleanup the session's respective elements
when the corresponding producer terminates the session
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1339 >
2024-05-29 21:03:27 +00:00
Sebastian Dröge
a7418fb483
rtp: Use released version of rtcp-types
2024-05-29 10:30:40 +03: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
Nirbheek Chauhan
9485265769
rtspsrc2: Update rtpbin2 support to use rtprecv and rtpsend
...
USE_RTPBIN2 is now USE_RTP2 because there is no "rtpbin2" now.
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