Commit graph

4101 commits

Author SHA1 Message Date
Taruntej Kanakamalla
ab50ef2fb7 webrtc: sink: avoid recursive locking of the session
Drop the session lock before calling end_session and finalize session
if the consumer refuses the media or the provided payload in not valid

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2322>
2025-06-30 11:09:55 +00:00
Sebastian Dröge
77e45a6f00 Update gstreamer-rs / gtk-rs dependencies
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2323>
2025-06-27 12:15:30 +03:00
Sebastian Dröge
2d61a4cc06 Fix various new clippy 1.88 warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2323>
2025-06-26 22:51:42 +03:00
François Laignel
ff2b71cbbd ts: add ts-rtpdtmfsrc
This commit adds a `ts-rtpdtmfsrc`, similar to `rtpdtmfsrc`, but taking
advantage of the threadshare runtime, allowing reduced number of threads and
context switches when many elements are used.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2319>
2025-06-26 17:21:10 +02:00
Mathieu Duponchelle
6061ddbb5b audio/elevenlabs: new speech synthesis element around ElevenLabs API
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2313>
2025-06-25 22:46:37 +00:00
Mathieu Duponchelle
c269ef50dd transcriberbin: fix naming of subtitle pads
When subtitle pads are added dynamically, the suffix used was
"synthesis" instead of the expected "subtitle".

This fixes it by refactoring the code to define a new enum with a name()
parameter for the types of custom output channels.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2318>
2025-06-25 21:55:01 +00:00
Sebastian Dröge
efb0ae5e1f webrtcsink: Also ignore H265 sprop-{vps,pps,sps} RTP caps fields from discovery
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2315>
2025-06-24 08:16:09 +00:00
Sebastian Dröge
7cd277e56b webrtcsink: Don't reject caps events if the codec_data changes
We only care if actually incompatible changes are happening, which would
be reflected by other caps fields.

Use the same codec caps cleanup function as elsewhere for this purpose.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2315>
2025-06-24 08:16:09 +00:00
Sebastian Dröge
88dbe2dc4e Rename relationmeta plugin to analytics
It's basically dependency-less and there are going to be more
analytics-related utility elements in the future, so moving them
all to a single plugin simplifies things.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2314>
2025-06-23 13:54:09 +03:00
Matthew Waters
d80f91da51 cea708mux: support configuring a limit to how much data will be pending
Can prevent a build up of data and reduce the amount of delayed captions.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2311>
2025-06-22 00:05:10 +00:00
François Laignel
6ae07945ac threadshare: add inter elements
These threadshare-based elements provide a means to connect an upstream pipeline
to multiple downstream pipelines while taking advantage of reduced nb of threads
& context switches.

Differences with the `ts-proxy` elements:

* Link one to many pipelines instead of one to one.
* No back pressure: items which can't be handled by a downstream pipeline are
  lost, wherease they are kept in a pending queue and block the stream for
  `ts-proxysink`.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2293>
2025-06-20 17:11:07 +02:00
François Laignel
b48ab031a0 ts: move flume to dev dep (used in examples)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2293>
2025-06-20 17:11:07 +02:00
L. E. Segovia
7d3668a08a audiofx: Fix Nightly dangerous_implicit_autorefs, part 2
Skip using raw pointers altogether.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2291>
2025-06-19 18:45:32 -03:00
L. E. Segovia
c74d859490 quinn: Fix Nightly mismatched_lifetime_syntaxes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2291>
2025-06-19 14:38:56 -03:00
L. E. Segovia
eb91bd7bf4 json: Fix Nightly mismatched_lifetime_syntaxes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2291>
2025-06-19 14:38:56 -03:00
L. E. Segovia
0bdf3c1b87 audiofx: Fix Nightly dangerous_implicit_autorefs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2291>
2025-06-19 14:38:56 -03:00
L. E. Segovia
eeb811115f ndi: Fix Nightly mismatched_lifetime_syntaxes lint
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2291>
2025-06-19 14:38:56 -03:00
L. E. Segovia
b2d6c53ac1 audiofx: Fix Nightly mismatched_lifetime_syntaxes lint
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2291>
2025-06-19 14:38:56 -03:00
Sebastian Dröge
f1b6cd541b threadshare: Update to getifaddrs 0.2
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2308>
2025-06-19 10:01:30 +03:00
Matthew Waters
bc3a54019c livekit: expose a connection state property
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2306>
2025-06-18 10:18:57 +00:00
François Laignel
c89fc4871e update Cargo.lock
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2304>
2025-06-17 21:50:35 +02:00
François Laignel
43b37aed8b all: fixes for Clock: non-optional return types
See: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1739
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2304>
2025-06-17 20:00:00 +02:00
Sebastian Dröge
52121e6ea7 deny: Add override for windows-sys 0.59
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2302>
2025-06-17 08:28:59 +00:00
Nirbheek Chauhan
850b566b1b meson, cargo: don't build skia plugin by default for now
Fails to build in some/many cases:

https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/692
https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1804

In addition to the git-sync-deps issue, the skia-safe project uses
cargo to invoke gn, and in the process it loses the ability to pick up
dependencies from the system. This means it cannot integrate as
a meson subproject.

Co-authored-by: L. E. Segovia <amy@amyspark.me>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2251>
2025-06-17 07:54:49 +00:00
Albert Sjolund
a19c9229d8 gcc: handle out of order packets
Before, if a reference time wraparound happened and the arrival time of
newer packets was much lower, the map would grow infinitely. Handle
specifically the case where the difference in timestamp is very large,
if the input data contains a wraparound. Contains a unit/regression
test for this behaviour.

This will be combined with a fix for TWCC parsing in rtptwcc.c in
gstreamer core.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2255>
2025-06-16 15:18:34 +02:00
Sebastian Dröge
29b349a76b Update windows-sys dependency from ">=0.52, <=0.59" to ">=0.52, <=0.60"
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2298>
2025-06-16 14:32:22 +03:00
Sebastian Dröge
83388f4944 Update various dependencies
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2261>
2025-06-16 13:21:23 +03:00
Sebastian Dröge
7ed3b1da33 deny: Remove unnecessary target-lexicon override
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2261>
2025-06-16 13:19:51 +03:00
L. E. Segovia
2a3451080f ci: Further deny AWS-related updates and fix related checks, part 3
aws-credential-types et al. now require more bloated/broken versions.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2261>
2025-06-16 13:18:27 +03:00
L. E. Segovia
ab4b9842b2 Cargo.lock, deny: Update dependencies and remove obsolete checks
rav1e and dav1d released a minor version, removing  many old transitive dependencies.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2261>
2025-06-16 13:18:27 +03:00
Tim-Philipp Müller
c580400d5c cargo: add config file to force CARGO_NET_GIT_FETCH_WITH_CLI=true
... as workaround for fdo gitlab + fastly issues.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2295>
2025-06-14 23:53:55 +01:00
Matthew Waters
083496d3bf webrtcsrc: the webrtcbin get-transceiver index is not mlineindex
Instead search through the list of transceivers for the transceiver with the
relevant mlineindex property.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1829

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2292>
2025-06-13 16:31:45 +00:00
L. E. Segovia
0fba9bd61e deny: Update lints
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2290>
2025-06-12 13:20:09 -03:00
François Laignel
69ff3ae6c7 ts: fix kqueue reactor
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2288>
2025-06-12 07:37:49 +02:00
François Laignel
d156d8950f ts: sync runtime with latest async-io
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2287>
2025-06-11 18:13:22 +02:00
François Laignel
d0ae6b87b4 ts: use async fn in traits when possible
This is stable since Rust 1.75.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2278>
2025-06-11 14:36:30 +00:00
François Laignel
9b677234dd ts: rt/pad: fix obsolete FIXMEs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2278>
2025-06-11 14:36:30 +00:00
François Laignel
e3c97941ec ts: standalone example: add a ts-queue
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2278>
2025-06-11 14:36:30 +00:00
François Laignel
7ed24eac0a ts: standalone example: minor fixes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2278>
2025-06-11 14:36:30 +00:00
L. E. Segovia
18723217fc cargo_wrapper: Fix backslashes being parsed as escape codes on Windows
Fixes #696

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2285>
2025-06-11 09:52:42 -03:00
Taruntej Kanakamalla
289d0c4cac whip: server: pick session-id from the endpoint if specified
Use any string present after the "whip/endpoint" in the POST url's endpoint
as the session id of the producer

Continue to generate a UUID for the session id if it is not specified
as a part of the endpoint

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2282>
2025-06-11 08:24:44 +00:00
Matthew Waters
880d15d698 tttocea708: don't panic if a new service would overflow
Account for the addition of the service header when calculating the free
space of the packet.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2283>
2025-06-10 16:38:44 +00:00
Matthew Waters
3332af9a24 tttocea708: add some simple tests
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2283>
2025-06-10 16:38:44 +00:00
Philippe Normand
e7c0485e8c pcap_writer: Make target-property and pad-path properties writable again
The warning reported in
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2031#note_2874920
is no longer emitted.

This reverts commit 6f7a1e21d5.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2281>
2025-06-10 03:24:09 +00:00
Jakub Adam
1e205c842e webrtcsink: Don't require encoder element for pre-encoded streams
When webrtcsink takes as an input a stream that is already encoded, it
errors out when there is no encoder element available for the codec in
question.

This change makes it possible to stream an output from a camera that
already produces e.g. video/x-h264 without bloating the GStreamer
installation with a redundant H.264 encoder element.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2273>
2025-06-05 18:18:13 +02:00
Mathieu Duponchelle
80877c49c3 net/webrtc: add new examples for stream selection over data channel
Two examples are added, a server that sends N video streams, and a
client that composites them together, then sends messages over the
control data channel to enable some of them and disable some others.

This demonstrates how custom upstream events can be sent from a client
to a server, and how once a connection is established one can start and
stop the flow of data for a specific media without affecting the overall
connection.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2276>
2025-06-05 12:50:10 +00:00
Jochen Henneberg
8ebdffc68d fmp4mux: Added tests for sparse streams (late buffer, gap)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2236>
2025-06-05 11:44:37 +00:00
Jochen Henneberg
c3740cd6a9 fmp4mux: Fix handling of stream with late single GOP
If a GOP starts after current chunk/fragment end draining should still
happen for the other streams. So handle this situation gracefully and
reset the late_gop state when done.

This also fixes GAP buffer handling for video streams that require
DTS.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2236>
2025-06-05 11:44:37 +00:00
Jochen Henneberg
cd45732f7c fmp4mux: Added test to trigger panic on late GOP
If the first GOP of a stream starts after the fragment/chunk end the
stream is marked filled because otherwise the really filled streams
will never be drained.

However, this break the assertion in drain_buffers_one_stream() that
there are at least two GOPs where the pre-last GOP has
final_earliest_pts.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2236>
2025-06-05 11:44:37 +00:00
Mathieu Duponchelle
8e0674397d webrtcsrc: send CustomUpstream events over control channel ..
.. also fill the mid field properly while we're at it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2274>
2025-06-05 10:55:44 +00:00