Commit graph

4268 commits

Author SHA1 Message Date
Thibault Saunier
e5afe39be4 meson: skia: Add harfbuzz, freetype and fontconfig as dependencies
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/692

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2300>
2025-07-08 13:19:30 +00:00
Thibault Saunier
4f7bcf3c1e skia: Update to 0.87 which supports using pkg-config
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2300>
2025-07-08 13:19:30 +00:00
François Laignel
836045e945 rtprecv: fix SSRC collision event sent in wrong direction
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2351>
2025-07-07 13:10:59 +02:00
Mathieu Duponchelle
464d8b6fbb elevenlabssynthesizer: fix running time checks
The deadline for pushing a buffer out of the element is not its running
time, but its running time added to the upstream latency + the element
latency.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2348>
2025-07-04 19:12:51 +00:00
Mathieu Duponchelle
6c1b331129 elevenlabssynthesizer: remove stray progress message
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2348>
2025-07-04 19:12:51 +00:00
Robert Ayrapetyan
e82e5fe5ae webrtc: fix Safari addIceCandidate crash
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2039>
2025-07-03 11:50:19 +00:00
Brad Hards
06939540a1 mp4mux: add TAI timestamp muxing
This is an implementation of the TAI timestamp functionality described in ISO/IEC 23001-17 Amendment 1 Section 8.1.2 and 8.1.3.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2280>
2025-07-03 21:07:35 +10:00
Arun Raghavan
efaab53ab3 aws: s3hlssink: Write to S3 on OutputStream flush
It is quite brittle to try to depend on signal order from splitmuxsink
or hlssink3 (or worse, when S3Upload gets drop()ed). We implement
flush() on the stream instead, with a simple check to make sure there's
new data to avoid duplicate uploads.

If we get the ordering wrong, we upload new segments _after_ the
corresponding playlist update referencing that segment, which outside of
being wrong, could break players.

I had done this in the initial implementation, but iirc the flush() was
insufficient for reasons I don't fully recall. Doing a flush in both
flush() and drop() should hopefully cover all the cases that I found to
not work. In addition, since this is an append-only stream, we can do a
simple length check to avoid redundant uploads.

Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/701
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2330>
2025-07-02 14:50:48 +00:00
Robert Mader
b271edc3f8 gtk4: Promote set_caps debug log to info
As that info is very helpful for debugging and can get easily get
lost in debug noise.

This matches the behavior of glupload and gtkgstsink.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2341>
2025-07-02 14:38:42 +02:00
François Laignel
096987a31c rtpbin2: sync: fix race condition
Under some circumstances, the `ssrc` could be added to the `ssrcs` map without
the `clock_rate` being defined. When `rtprecv` would check wether the ssrc
`has_clock_rate()`, it would return `true` spuriously, which would then cause a
panic in `calculate_pts()`.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2337>
2025-07-02 13:33:34 +02:00
Jochen Henneberg
594a0152ba gopbuffer: Push GOPs in order of time on EOS
GOPs are internally ordered with latest GOP first so they have to be
pushed in reverse order on EOS.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2335>
2025-07-02 09:48:22 +02:00
Jerome Colle
388b442891 webrtcsink: add signal to configure mitigation modes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2279>
2025-07-01 19:25:09 +02:00
François Laignel
0be4cd8b32 rtpbin2: fix race condition on serialized Queries
If a serialized Query was pushed after the src Pad Task had already started
waiting for next item, the Query was not processed, blocking the stream.

This commit wakes the `JitterbufferStore` if a `Waker` was pending.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2332>
2025-07-01 17:26:27 +02:00
Taruntej Kanakamalla
fc0b433e29 webrtcsink: fix deadlock on error setting remote description
Avoids another attempt to lock the sesion mutex recursively.
Take a copy of the session id string to be passed to the signaller and
drop the session mutex after removal of session from the hashmap

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2331>
2025-07-01 13:36:38 +05:30
Matthew Waters
f835e075ea livekit: add room-timeout
Produces an error message and disconnects when there is no other participant
in the room for room-timeout milliseconds.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2307>
2025-07-01 00:30:47 +00:00
Arun Raghavan
a5f0b5947b net: hlssink3: Fix a comment typo
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2329>
2025-06-30 10:01:49 -04:00
Arun Raghavan
5d4b23eb2c net: hlssink3: Use closed fragment location in playlist generation
Currently, we incorrectly use the last location we generated, which is
the current in-flight fragment while generating a new playlist. Instead,
the playlist should use the fragment that was just close (i.e. the
previous fragment), so it does not refer to a fragment we have not yet
uploaded.

This is a bug that was copied over from how hlssink2 does things.

Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/701
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2324>
2025-06-30 12:09:58 +00:00
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