Guillaume Desmottes
95fc407de3
togglerecord: move the next pad id to its own variable
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1935 >
2024-11-29 11:56:37 +00:00
Guillaume Desmottes
3f5396af58
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/1935 >
2024-11-29 11:56:37 +00:00
Guillaume Desmottes
5f007ed7ee
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/1935 >
2024-11-29 11:56:37 +00:00
Guillaume Desmottes
20fb4f82d8
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/1935 >
2024-11-29 11:56:37 +00:00
Guillaume Desmottes
fb54cfa425
togglerecord: implement Debug on Stream and StreamState
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1935 >
2024-11-29 11:56:37 +00:00
Guillaume Desmottes
7a336cf8ad
togglerecord: document mutexes hold when calling ToggleRecord methods
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1935 >
2024-11-29 11:56:37 +00:00
L. E. Segovia
6e0d6c1a5a
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/1939 >
2024-11-29 10:42:06 +00:00
Edward Hervey
8bb0a7eecc
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/1947 >
2024-11-29 09:48:17 +00:00
Sebastian Dröge
f4d2bd1a5d
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/1949 >
2024-11-28 21:14:43 +00:00
Sanchayan Maity
c3de9e5927
net/quinn: Add examples for QUIC multiplexing & RoQ
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1937 >
2024-11-28 17:52:18 +00:00
Edward Hervey
059bb2435e
meson: Fix document of dependencies.py argument
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1941 >
2024-11-27 15:50:54 +01:00
Edward Hervey
6b58c2173c
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/1941 >
2024-11-27 15:49:55 +01:00
Xavier Claessens
e5f3ab4053
webrtcsink: Ignore more fields in caps change
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1838 >
2024-11-26 15:49:21 -05:00
Diego Nieto
362216f40b
net/webrtc: add whipclient example
...
Add a simple example producing both audio and video to make it
work with the whipserver example
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1938 >
2024-11-25 20:29:43 +01:00
Diego Nieto
0135aea9e4
net/webrtc: whipserver example
...
extend the example to support both audio and video conversions
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1938 >
2024-11-25 20:29:43 +01:00
Sebastian Dröge
347bee16d4
Update for GLib signal API changes
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1936 >
2024-11-22 15:52:41 +02:00
Sebastian Dröge
dc056213c6
deny: Update
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1936 >
2024-11-22 15:44:36 +02:00
Sebastian Dröge
3b7e55e717
Update Cargo.lock
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1936 >
2024-11-22 15:43:13 +02:00
François Laignel
a8146f333f
all: use builder conditional setters where applicable
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1926 >
2024-11-21 12:57:16 +00:00
François Laignel
4262a8aafe
all: update due to new has_property signature
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1926 >
2024-11-21 12:57:16 +00:00
François Laignel
df0e9d311d
Update Cargo.lock
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1926 >
2024-11-21 12:57:16 +00:00
Sebastian Dröge
160f08889f
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/1933 >
2024-11-21 11:40:24 +00:00
Sebastian Dröge
d32d499856
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/1933 >
2024-11-21 11:40:24 +00:00
Matthew Waters
25bb2a12f1
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/1931 >
2024-11-21 17:15:44 +11:00
Mathieu Duponchelle
29b5ccacdf
transcriberbin: take passthrough state into account in more places
...
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/630
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1925 >
2024-11-20 12:52:17 +01:00
Mathieu Duponchelle
1fc1ed2539
transcriberbin: relink transcriber more thoroughly
...
* Remove old transcriber from correct bin
* Remove old unsynced ghost pads and expose new ones
* Fix potential deadlock where State was locked after PadState
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1925 >
2024-11-20 12:52:17 +01:00
Mathieu Duponchelle
849ae7c845
speechmatics: fix hang when one source pad errors out
...
We still want to push translations / transcripts on the other pads, and
prior to that patch as the pad only paused itself but kept its mpsc
channel alive and stopped reading from it, it would block further messages
from being processed by the other source pads.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1925 >
2024-11-20 12:52:17 +01:00
Mathieu Duponchelle
169f7b762e
transcriberbin: remove proxy properties on element
...
Those properties are now exposed on the sink pads, and should be used
directly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1925 >
2024-11-20 12:52:17 +01:00
Mathieu Duponchelle
4074f4c275
transcriberbin: simplify latency query implementation
...
By always replying with a synthetic latency
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1925 >
2024-11-18 19:24:57 +01:00
Mathieu Duponchelle
10a022e457
transcriberbin: expose unsynced source pads for original transcripts
...
.. when the transcriber exposes those.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1915 >
2024-11-18 17:30:54 +00:00
Mathieu Duponchelle
b5bd7d047c
awstranscribe: output original transcripts to separate pad
...
When the transcriber is used in a live situation, it can be useful
to save a transcript for editing after the fact when producing a
VOD.
Each source pad now gets an "unsynced_" pendant. That unsynced pad
is pushed to from the context of the "live" source pad task. Flow
returns from the unsynced pads are ignored, we simply check the
last flow return before attempting to push the next transcript.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1915 >
2024-11-18 17:30:54 +00:00
Jordan Petridis
39e9ad1d29
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/1922 >
2024-11-18 16:33:21 +02:00
Jochen Henneberg
28a200be30
fmp4mux: Fixed comment and removed commented code from test
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1921 >
2024-11-18 09:52:23 +00:00
Jochen Henneberg
08c026cea6
fmp4mux: Accept tag updates before stream starts
...
Tag updates should be done if either the tag is set before the stream
started or if tag changes are allowed while the stream is already
running.
Fixes #629
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1921 >
2024-11-18 09:52:23 +00:00
Sanchayan Maity
28e66e150f
net/quinn: Use aggregator as base class for quinnroqmux
...
While at it, also update and fix the docs.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1775 >
2024-11-18 11:46:20 +05:30
Sanchayan Maity
8dc8aa6f55
Update docs for quinn elements
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1775 >
2024-11-18 10:59:53 +05:30
Sanchayan Maity
accb6b02ea
net/quinn: Add muxer and demuxer for RTP over QUIC
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1775 >
2024-11-16 11:46:13 +05:30
Sanchayan Maity
d5425c5225
net/quinn: Fix test using QUIC Stream
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1634 >
2024-11-15 23:14:13 +00:00
Sanchayan Maity
5bf44b6187
net/quinn: Enable log feature
...
This is required if and when we do need to capture logs from quinn for
debugging.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1634 >
2024-11-15 23:14:13 +00:00
Sanchayan Maity
324f3531be
net/quinn: Use aggregator as base class for quinnquicmux
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1634 >
2024-11-15 23:14:13 +00:00
Sanchayan Maity
46f1fb4430
Update docs for quinn elements
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1634 >
2024-11-15 23:14:13 +00:00
Sanchayan Maity
5c829e6ca8
net/quinn: Add quinnquicdemux to support stream demultiplexing
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1634 >
2024-11-15 23:14:13 +00:00
Sanchayan Maity
f4ecf3873b
net/quinn: Handle multiple stream connections in quinnquicsrc
...
While at it, use PushSrc as base class. quinnquicsrc never supported
seeking and only ever operated in push mode. Length and offset for
create from BaseSrc was also never really honoured. Use PushSrc as
the base class which is more appropriate.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1634 >
2024-11-15 23:14:13 +00:00
Sanchayan Maity
babb6f360b
net/quinn: Support stream multiplexing in quinnquicsink
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1634 >
2024-11-15 23:14:13 +00:00
Sanchayan Maity
1cc2682b55
net/quinn: Add quinnquicmux to support stream multiplexing
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1634 >
2024-11-15 23:14:13 +00:00
Sanchayan Maity
0eb3f52356
net/quinn: Add helper for queries
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1634 >
2024-11-15 23:14:13 +00:00
Sanchayan Maity
0e89a79727
net/quinn: Add helper for adding stream id as meta to buffers
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1634 >
2024-11-15 23:14:13 +00:00
Sanchayan Maity
9b5f4b48ca
docs: Fix CI failure due to missing GRAY10_LE16 entry
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1920 >
2024-11-15 20:00:09 +05:30
Mathieu Duponchelle
d993c95e38
transcriberbin: fix initial transcription setup
...
Only link the audio tee with the pad transcriber when it is not
in passthrough mode.
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/628
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1916 >
2024-11-14 17:35:33 +00:00
Mathieu Duponchelle
4284fe953a
transcriberbin: expose lateness property
...
Directly mapped to the lateness property on the transcriber object.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1910 >
2024-11-14 16:40:14 +00:00