Commit graph

4287 commits

Author SHA1 Message Date
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
Matthew Waters
3d25763ac9 cea708mux: use cea708-types push_code_into_single_service
Simplifies the code significantly as we don't need to track whether a service or
a packet is full or not.

Fixes at least one case of a WouldOverflow panic and a subtraction underflow.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2275>
2025-06-05 13:07:30 +03:00
Matthew Waters
5a25e2a12b cea708mux: fix another WouldOverflow case
If data was left over from a previous aggregate, adding such data to a packet
was not following the same free space calculations.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2275>
2025-06-05 11:27:40 +10:00
Brad Hards
e1af0533b5 mux/mp4: add taic box
TAI Clock Information (`taic`) will be defined in ISO/IEC 23001-17 Amendment 1.
The TAI Clock Information box appears in the sample entry for the applicable track.

The clock information is metadata about the type and quality of a TAI clock. That
can be set via a stream tag. For example:

gst-launch-1.0 -v videotestsrc num-buffers=50 ! video/x-raw,width=1280,height=720,format=I420 !  taginject tags=precision-clock-type=can-sync-to-tai,precision-clock-time-uncertainty-nanoseconds=30000 ! isomp4mux ! filesink location=taic.mp4

This version writes compliant taic boxes if either or both of the tags are set. There
are two values in taic (for clock resolution and clock drift rate) that will be set to
reasonable default values.

taic is intended to be used (in video) with a TAITimestampPacket instance that is
per-sample auxilary information (i.e. via saio and saiz entries). That will be
provided as a follow-up change, based on a meta.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2246>
2025-06-03 11:12:18 +00:00
Matthew Waters
5eea7288d3 cea608overlay: also reset the output size on flush stop
Otherwise, a flushing seek may cause no captions to be displayed.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2270>
2025-06-03 10:02:36 +10:00
Matthew Waters
0c4ea45548 cea708overlay: also reset the output size on flush stop
Otherwise, a flushing seek may cause no captions to be displayed.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/695

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2270>
2025-06-03 10:01:22 +10:00
L. E. Segovia
e860627092 webrtc: android: Migrate to FindGStreamerMobile
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2266>
2025-05-30 03:30:28 +00:00
L. E. Segovia
97bded80c6 webrtc: android: Update Gradle to 8.11
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2266>
2025-05-30 03:30:28 +00:00
Brad Hards
0826007d97 mux/mp4: test the trak structure
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2268>
2025-05-28 18:23:01 +09:30
Piotr Brzeziński
1e243add0c webrtc: Make older peers less likely to crash when webrtcsrc is used
Commit abf97ba2 introduced an API break by adding a new Consumer peer
role and adding a new field to the existing List message.
This caused older clients to crash as soon as a 'new' webrtcsrc
registered due to their inability to parse the new role.

This fix consists of two parts:
- makes webrtcsrc only register as a Consumer when it's actually waiting
for a producer session request, instead of doing that in all cases
- Reverts the List message to the old version, and instead adds a
ListConsumers message for the purpose of retrieving the list of
'awaiting' consumers

This is still technically an API break, and older clients will *still*
crash if a webrtcsrc registers as a Consumer. However, if ran the 'old'
way - either with a peer ID set or with connect-to-first-producer=true -
it won't do that anymore.

It's a band-aid fix to not break too many things while GStreamer 1.26
still follows the main branch here. After gst-plugins-rs 0.14 branches
away we'll be able to do a proper API break, aimed at making similar
changes possible in the future without causing old clients to crash.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2259>
2025-05-27 11:38:47 +00:00
Guillaume Desmottes
3c830e7ea8 ci: fix check-documentation-diff curl command
Need to pass -L to follow the moved location.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2262>
2025-05-27 06:44:41 +00:00
Daniel Morin
448edec0ee webrtcsink: Use seq number instead of Uuid for discovery
- At startup the system might not have enough entropy to generate a
  Uuid and attempting to create one block till enough entropy has been
  accumulated. This cause delay to start discovery after system reboot.
- Uuid is not required, we only need uniqueness between local
  discoveries

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2260>
2025-05-27 06:19:24 +00:00
Eva Pace
999d08c5bc net/webrtc/janusvr: add new source element
Co-authored-by: Guillaume Desmottes <guillaume.desmottes@onestream.live>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1473>
2025-05-27 05:56:06 +00:00
Brad Hards
34f16e0567 mux/mp4: migrate to mp4-atom to check muxing
This avoids implementing parsing logic for tests.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2258>
2025-05-26 10:30:12 +00:00
Guillaume Desmottes
bd7cc01377 webrtc: janus: inline JsonReply members
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2244>
2025-05-26 08:12:09 +00:00