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
Guillaume Desmottes
9ea8b6e3f3
togglerecord: release rec_state before pushing buffer
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1962 >
2024-12-02 10:57:04 +00:00
Guillaume Desmottes
de0178ddca
togglerecord: move the next pad id to its own variable
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1958 >
2024-12-02 07:54:23 +00:00
Guillaume Desmottes
7e92f973ad
togglerecord: stop copying settings
...
It's racy as the settings values can be changed between the copy and
reading them.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1958 >
2024-12-02 07:54:23 +00:00
Guillaume Desmottes
5024be9f2e
togglerecord: define total order on mutexes
...
I'm tracking a bug which may or may not be related to a deadlock in
togglerecord.
I audited the code and figured we could define a total order on the
mutexes with just a few changes.
I don't know yet if that will help with my bug but it can't hurt to have
a order properly documented with so many mutexes involved.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1958 >
2024-12-02 07:54:23 +00:00
Guillaume Desmottes
8b798fb2ac
togglerecord: move pads and other_streams to State
...
Allow us to remove two mutexes, making dead locks easier to debug.
Also now use the State lock with `main_stream_cond` as we want to use
the higher order mutex in order to prevent dead locks.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1958 >
2024-12-02 07:54:23 +00:00
Guillaume Desmottes
571db6caaf
togglerecord: implement Debug on Stream and StreamState
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1958 >
2024-12-02 07:54:23 +00:00
Guillaume Desmottes
ea91c5e47a
togglerecord: document mutexes hold when calling ToggleRecord methods
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1958 >
2024-12-02 07:54:23 +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
L. E. Segovia
a263f503c8
version-helper: Add script for setting the release date in Cargo.toml
...
See #599
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1953 >
2024-11-29 14:15:35 +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
Edward Hervey
37d5a2495d
tttocea708: Fix off-by-one issue
...
last_frame_no is used to eventually calculate the outgoing pts. We want to
increment it *after* having created the content
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1952 >
2024-11-29 10:49:37 +00:00
Edward Hervey
c3a3f5ccdd
meson: Fix document of dependencies.py argument
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1944 >
2024-11-28 13:40:50 +00:00
Edward Hervey
2af278fda2
meson: Detect unrelease gstreamer version number
...
If the minor version is odd, it means we are depending on gstreamer main and
should therefore enable the features of the (upcoming) even minor version
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1944 >
2024-11-28 13:40:50 +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
Jordan Petridis
d9fb91e56d
cargo: Default to thin lto for the release profile
...
Normal "fat" lto is quite resource heavy and requires
a lot of ram at compile time. Thinlto is a
much lighter alternative that produces comparable results
performance but it scales much better. [1] [2] [3]
All browser engines also compile with thinlto exclusively,
as it's almost as fast and saves considerable amount of
link time in the build.
[1]: https://doc.rust-lang.org/cargo/reference/profiles.html#lto
[2]: https://clang.llvm.org/docs/ThinLTO.html
[3]: https://blog.llvm.org/2016/06/thinlto-scalable-and-incremental-lto.html
In a test build on a windows machine, this brings down
the from scratch compile time from 7m30s to roughly 5m.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1923 >
2024-11-18 16:37:33 +00:00
Marc Wiblishauser
a736b17d8e
gtk4: add gtk::gdk use declaration for feature dmabuf
...
Fixes gstreamer/gst-plugins-rs#626
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1913 >
2024-11-11 12:58:57 +01:00
Guillaume Desmottes
132d93537c
videofx: update image and image_hasher deps
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1905 >
2024-11-02 12:39:14 +02: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
Guillaume Desmottes
da2ee5cd1b
cdg: update to image 0.25
...
I just published a new cdg_renderer release depending of image 0.25.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1905 >
2024-11-02 12:30:47 +02:00
Sebastian Dröge
442bd275ca
Update Cargo.lock
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1905 >
2024-11-02 12:26:44 +02:00
Sebastian Dröge
d14e6ad792
Update versions to 0.13.3
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1905 >
2024-11-02 12:25:07 +02:00
Sebastian Dröge
9e24658516
Update CHANGELOG.md for 0.13.3 release
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1905 >
2024-11-02 12:23:56 +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
3a098b9d9e
gtk4: Use a correctly typed None value when retrieving the paintable property fails
...
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/609
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1851 >
2024-10-28 10:12:57 +00:00
Sebastian Dröge
eeae79cfdd
deny: Update
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1885 >
2024-10-28 09:36:03 +02: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
2805215d3f
togglerecord: Remove obsolete comment
...
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
Jordan Petridis
1cf4419c08
ci: Specify the number of build jobs on windows
...
Followup to b5e0e071
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1874 >
2024-10-22 19:29:28 +00:00
Jordan Petridis
56bc1e06f5
ci: Use cargo nextest as the test runner and export junit reports
...
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
Mathieu Duponchelle
5501eacb6c
transcriberbin: fix linking of user-provided transcriber
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1836 >
2024-10-15 15:58:57 +00:00
Mathieu Duponchelle
ed32f96fa3
transcriberbin: support both latency and transcribe-latency properties
...
Also don't set translate-latency property if not present
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1836 >
2024-10-15 15:58:57 +00:00
Mathieu Duponchelle
36f6097e62
transcriberbin: add debug
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1836 >
2024-10-15 15:58:57 +00:00
Guillaume Desmottes
57234522ec
webrtc: janus: add 'janus-state' property to the sink
...
This property can be used by applications to track the state of the
signaller, especially to know when the stream is up.
Fix #510
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1849 >
2024-10-10 16:56:25 -04:00