Sebastian Dröge
4b62b011ed
Fix various new Rust 1.85 clippy warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2106 >
2025-02-22 10:32:38 +02:00
Sebastian Dröge
632fe83be3
mpegtslivesrc: Take adaptation field discontinuity flag into account
...
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/653
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2105 >
2025-02-21 11:49:48 +00:00
Sebastian Dröge
16bbe13f38
mpegtslivesrc: Consider the initial calibration of the clock too
...
Previously we assumed that the calibration is always at the origin but
this is not necessarily true.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2105 >
2025-02-21 11:49:48 +00:00
Mark-André Schadow
7b780e2aaf
onvifmetadatacombiner: Metadata should not have a pts/dts
...
Incoming onvif-data should be stripped of pts/dts, as they are not updated when attached to a frame. Pts/Dta are readded by the associated extractor element
Linked to https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/655
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2099 >
2025-02-21 09:49:39 +00:00
Tim-Philipp Müller
40d33805d8
webrtcsink: chain up in signaller ::constructed funcs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2094 >
2025-02-20 12:53:20 +00:00
eipachte
1b866222eb
hlssink3: Write playlists atomically
...
We want to try to ensure that playlist files are written completely in a
single shot, to avoid the possibility of serving up a patially written
playlist.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2098 >
2025-02-20 11:23:50 +00:00
Sebastian Dröge
ee330f13ae
Fix some new clippy 1.84 warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2097 >
2025-02-19 19:45:04 +02:00
Yaakov Selkowitz
6f4a4c392f
Add missing copies of license files
...
This should fix the crates that are missing license files.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2052 >
2025-01-28 11:34:15 +00:00
Sebastian Dröge
b70ad7895f
mpegtslivesrc: Handle zero-byte adaption fields
...
Simply skip over them instead of handling them as parse error.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2048 >
2025-01-21 13:50:46 +00:00
Tim-Philipp Müller
0b0c1cbf50
rtp: ac3: validate depayloaded AC-3 data in unit tests
...
Check for valid frame header.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2046 >
2025-01-20 19:32:48 +00:00
Tim-Philipp Müller
6292916f94
rtp: tests: add run_test_pipeline variants with data validation
...
So we can actually check the content of depayloaded buffers too.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2046 >
2025-01-20 19:32:48 +00:00
Tim-Philipp Müller
82167453b4
rtpac3depay2: fix handling of non-fragmented payloads
...
The frames of a non-fragmented payload would contain
an extra two bytes before the frame sync and then
missing two bytes at the end which which would cause
decoding errors on the last block and/or frame crc
check failures.
This happened because we didn't take into account
the 2-byte packet payload header when creating output
sub-buffers, as the offsets we were using were in
relation to the payload data after the headers.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/645
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2046 >
2025-01-20 19:32:47 +00:00
Sebastian Dröge
148608e1d5
rtp: basepay: Only forward buffers if we have a segment
...
If there are pending buffers without a segment then they must come from
the caps only and should be forwarded at a later time, if any.
Also reject any incoming buffers if no segment was received.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2042 >
2025-01-15 18:10:39 +00:00
Sebastian Dröge
49d6b9b1c2
rtp: basedepay: Only forward buffers if we have a segment
...
If there are pending buffers without a segment then they must come from
the caps only and should be forwarded at a later time, if any.
Also reject any incoming buffers if no segment was received.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2042 >
2025-01-15 18:10:39 +00:00
Sebastian Dröge
36cdb85e77
mpegtslivesrc: Parse PES packets and check for reasonable PTS/DTS
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2011 >
2024-12-24 11:30:23 +00:00
Sebastian Dröge
f610a0c9d8
mpegtslivesrc: Refactor section parser
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2011 >
2024-12-24 11:30:23 +00:00
Sebastian Dröge
ff547205ea
mpegtslivesrc: Reset rate to 1/1 on disconts and flush observations
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2010 >
2024-12-23 19:59:06 +00:00
Sanchayan Maity
e871e5f74d
aws: Add next-file support to putobjectsink
...
Add `next-file` support to `awss3putobjectsink` on similar lines to
the `next-file` support in `multifilesink`.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1928 >
2024-12-23 17:26:31 +00:00
Sebastian Dröge
feb1f45836
raptorqdec: Stop using deprecated API
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2007 >
2024-12-23 18:31:07 +02:00
Sebastian Dröge
230afc11ea
Fix / silence various new Rust 1.83 clippy warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2007 >
2024-12-23 18:27:38 +02:00
Thibault Saunier
4764058efa
webrtcsrc: Add a 'connect-to-first-producer' property
...
This is an helper property which allows to avoid requiring to know
peer IDs, which is very useful during development.
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/386
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2000 >
2024-12-20 10:51:25 +02:00
Mathieu Duponchelle
c2c8423e7f
gstwebrtc-api: example: use http by default
...
That way the webpage connects with ws:/ to the signaller.
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/589
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1992 >
2024-12-16 15:14:41 +00:00
Mathieu Duponchelle
0ab583c3aa
webrtc-api example: do not rely on webpack / npm proxying websocket
...
Instead simply use the desired address directly from the reference
example, this makes it work out of the box without placing expectations
on the web server.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1991 >
2024-12-16 13:59:51 +00:00
Mathieu Duponchelle
9e848d3b75
webrtcsink: add nvh265enc support
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1981 >
2024-12-11 13:13:42 +00:00
Taruntej Kanakamalla
6cf39d4a00
webrtc: use the nick to set enum type properties on openh264enc
...
The properties `rate-control` and `complexity` are of enum types and passing
a gint value is resulting in a panic. So pass the corresponding nick of the enum
value instead
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1971 >
2024-12-05 17:17:51 +00:00
Guillaume Desmottes
625eeccf25
webrtc: janus: handle slowlink event
...
Fix this warning:
webrtc-janusvr-signaller imp.rs:426:gstrswebrtc::janusvr_signaller:👿 :Signaller::handle_msg:<GstJanusVRWebRTCSignallerU64@0x7f317009b4d0> Unknown message from server: {
"janus": "slowlink",
"session_id": 980554280060589,
"sender": 5867141593320621,
"mid": "video0",
"media": "video",
"uplink": false,
"lost": 15
}
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1967 >
2024-12-04 13:05:26 +00:00
Guillaume Desmottes
8434126a58
webrtc: janus: handle slow_link videoroom event
...
Fix this warning:
webrtc-janusvr-signaller imp.rs:426:gstrswebrtc::janusvr_signaller:👿 :Signaller::handle_msg:<GstJanusVRWebRTCSignallerU64@0x7f317009b4d0> Unknown message from server: {
"janus": "event",
"session_id": 980554280060589,
"sender": 5867141593320621,
"plugindata": {
"plugin": "janus.plugin.videoroom",
"data": {
"videoroom": "slow_link",
"current-bitrate": 0
}
}
}
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1967 >
2024-12-04 13:05:26 +00:00
Mathieu Duponchelle
f8178fbd21
webrtscink: fix deadlock when answering
...
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/637
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1959 >
2024-12-02 16:49:18 +00:00
Ruben Gonzalez
0821c39640
webrtcsink: add openh264enc support
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1957 >
2024-11-29 23:08:45 +00:00
Sebastian Dröge
3cccede612
webrtcsink: Set caps-change-mode=delayed on encoder capsfilter
...
Otherwise when changing the target caps (e.g. for reducing quality)
there is a race condition between buffers between the converter elements
and renegotiation.
For example, videoconvertscale might've output a 1920x1080 buffer, then
the capsfilter is configured to 1280x720, the buffer arrives in
videorate, videorate notices that renegotiation is pending, tries to
renegotiate and ends up with EMPTY caps because it can only change the
framerate but not the resolution.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1951 >
2024-11-29 12:39:20 +00:00
Matthew Waters
0537734aee
webrtcsink: don't block the tokio runtime while holding state lock in unprepare()
...
It is possible that in unprepare(), waiting for a task to complete while
holding the state lock, that task may be waiting to acquire the state lock and
result in a deadlock.
This is quick to reproduce when starting and stopping webrtcsink in very quick
succession.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1932 >
2024-11-28 16:44:05 +11:00
Xavier Claessens
52f48d7279
webrtcsink: Ignore more fields in caps change
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1940 >
2024-11-27 12:18:33 +00:00
Sebastian Dröge
d032c52ff5
mpegtslivesrc: Fix mismatch between internal / external time usage
...
Previously the internal time was stored as base offset for calculating
the external time from the PCR, which resulted in disconts being
detected wrongly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1934 >
2024-11-21 12:55:36 +00:00
Sebastian Dröge
5fe4d948bf
mpegtslivesrc: Rename variables to make it clear which time domain they refer to
...
We have the internal time domain (monotonic clock) and the external time
domain (scaled monotonic clock in the rate of the PCR).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1934 >
2024-11-21 12:55:36 +00:00
Sebastian Dröge
be2b4952d2
Update to async-tungstenite 0.28
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1905 >
2024-11-02 12:34:43 +02:00
Sebastian Dröge
1afe165fce
Update async-tungstenite dependencies
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1905 >
2024-11-02 12:34:11 +02:00
Xavier Claessens
634ec19e24
janusvr_signaller: Do not block in end_session()
...
Only stop() is allowed to block, wait there.
Fixes #603
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1903 >
2024-11-01 15:11:17 +00:00
Mathieu Duponchelle
4d75091e91
awstranscriber: post warning message with details when item is late
...
When the latency is configured to a value that is too low, items will be
pushed out with an adjusted timestamp, thus affecting synchronization.
It can be useful for the application to receive details about those
adjustments.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1897 >
2024-10-29 11:36:07 +00:00
Sebastian Dröge
da634989d9
Update to quick-xml 0.37
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1893 >
2024-10-29 06:51:38 +00:00
Sebastian Dröge
d9664d77b0
mpegtslivesrc: Parse PAT/PMT and only handle PCRs from the first program
...
This matches default behaviour of tsdemux and makes sure we're not
jumping between different PCRs if there are multiple.
At a later time, program selection could be implemented.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1894 >
2024-10-28 13:25:43 +00:00
Jerome Colle
05e3c4a5a3
rtpbasedepay2: fix reference timestamp meta duplicates
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1892 >
2024-10-28 12:05:54 +00:00
Sanchayan Maity
199995201c
net/quinn: Specify crypto provider explicitly
...
rustls allows the choice of ring or aws-lc-rs as the cryptographic
library implementation. This is enabled/selected via Cargo feature
flags. We have plugins directly or indirectly depending on rustls
like quinn, aws and spotify. In the presence of multiple plugins,
selecting different implementations as the default, rustls can
panic.
The safest way to avoid this is by using builder_with_provider
and selecting a provider explicitly.
See below issues for further discussion and clarifications.
https://github.com/rustls/rustls/issues/1877
https://github.com/seanmonstar/reqwest/pull/2225
While at it, also specify features explicitly for quinn and rustls.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1884 >
2024-10-28 11:10:03 +00:00
Sebastian Dröge
d10a7224e1
Update to quick-xml 0.36
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1885 >
2024-10-28 09:33:11 +02:00
Sebastian Dröge
07f7730632
aws: Allow a deprecated BehaviourVersion for now
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1873 >
2024-10-22 20:21:55 +00:00
Sebastian Dröge
347b5987bd
Fix a couple of type hierarchy bugs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1873 >
2024-10-22 20:21:55 +00:00
Sebastian Dröge
6c0bfd3ffc
webrtc: Silence two new Rust 1.82 clippy warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1874 >
2024-10-22 19:29:28 +00:00
Sanchayan Maity
9c640c8bc3
net/quinn: Fix panic due to unset default crypto provider
...
Fix CI failure that we see after the upgrade of rustls from
0.23.13 to 0.23.15.
Related docs/PR
https://docs.rs/rustls/latest/rustls/crypto/struct.CryptoProvider.html#using-the-per-process-default-cryptoprovider
https://github.com/quinn-rs/quinn/pull/1882
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1866 >
2024-10-21 10:31:36 +00:00
Sebastian Dröge
e824ac31f4
reqwesthttpsrc: Allow a server error after a seek
...
There might be a server error because a seek would immediately close the
old connection without allowing for clean shutdown.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/527
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1863 >
2024-10-18 17:48:42 +00:00
Mathieu Duponchelle
2790fb41b2
webrtcsink: fix session not in place errors
...
The InPlace/Taken logic was introduced to avoid using an extra lock
around the session, but it places expectations that are not always
obvious to meet around when a session is expected to be taken or not.
Any code that expects to have access to the sessions at all times thus
needs either extra logic in the session wrapper, or to maintain the
state of the session outside of the session (eg mids).
This commit removes the logic, and wraps sessions in Arc<Mutex>>.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1859 >
2024-10-18 10:53:16 +00:00
Chris Bainbridge
f5b90ba261
custom-signaller: add missing manual-sdp-munging property
...
All signallers must now implement this property
Fixes #611
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1858 >
2024-10-18 09:33:42 +00:00