Commit graph

4197 commits

Author SHA1 Message Date
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
Guillaume Desmottes
8147ed59ad webrtc: janus: inline VideoRoomData members
No need to have explicit extra structs. Make the Janus API easier to read.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2244>
2025-05-26 08:12:09 +00:00
Guillaume Desmottes
1000035974 webrtc: janus: log signaller state changes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2244>
2025-05-26 08:12:09 +00:00
Guillaume Desmottes
e2ab2ea9ff webrtc: janus: decrease level of some info debug logs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2244>
2025-05-26 08:12:08 +00:00
Guillaume Desmottes
9742381508 webrtc: janus: define mutexes ordering
Should help preventing dead locks.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2244>
2025-05-26 08:12:08 +00:00
Guillaume Desmottes
6082597a56 webrtc: janus: do not re-use the same transaction id
Each request is supposed to have its own transaction id as it is used to
identify the reply from the server.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2244>
2025-05-26 08:12:08 +00:00
Guillaume Desmottes
063849f458 webrtc: janus: use serde tag to describe Janus API
Makes the API clearer and less prone to errors by relying on enums
rather than strings.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2244>
2025-05-26 08:12:08 +00:00
Guillaume Desmottes
deb7325e7c webrtc: janus: log message sent as TRACE
The messages received are already logged as TRACE.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2244>
2025-05-26 08:12:08 +00:00
Guillaume Desmottes
2fb92cf188 webrtc: janus: use 'member' when defining janus-state property
It actually works when passing the type as well.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2244>
2025-05-26 08:12:08 +00:00
Brad Hards
8cf0784730 mux/mp4: avoid dumping test output into build directory
This makes it slightly more difficult to debug failing tests, but is way
cleaner for the common case.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2257>
2025-05-26 11:58:15 +09:30
dukesook
6b54566a85 mp4mux: add extra brands
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2245>
2025-05-23 17:47:42 +03:00
Sebastian Dröge
befe818a3f gtk4: Use window.present() instead of window.show()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2252>
2025-05-22 17:44:29 +03:00
Sebastian Dröge
bb8393a5a3 ci: Update fdo ci templates version
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2252>
2025-05-22 17:12:53 +03:00
Sebastian Dröge
8a0b255504 ci: Update base image from Debian bookworm to trixie
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2252>
2025-05-22 17:12:53 +03:00
Sebastian Dröge
b511beaf2c gtk4: Update default GTK4 target version to 4.10
If necessary, support for older versions can still be enabled by
disabling the default but like this it will at least work correctly
(even if less efficient as it could) with newer GTK versions.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2252>
2025-05-22 17:12:53 +03:00
L. E. Segovia
3df88075f5 Update Cargo.lock to fix duplicated target-lexicon
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2254>
2025-05-22 07:53:38 +00:00
Sebastian Dröge
860bebcdef Fix or silence various new clippy warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2253>
2025-05-22 10:02:21 +03:00
Robert Mader
6450381017 video/gtk4: Initial colorimetry support
Similar to GtkGstSink.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2022>
2025-05-20 15:35:00 +02:00
Robert Mader
85455c937f Cargo.lock: Update GTK4
In order to pull in an API fix before we start using said API.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2022>
2025-05-20 13:46:24 +02:00
Robert Mader
7db44376db gtk4: Update and adapt to texture builder API changes
See https://github.com/gtk-rs/gtk4-rs/pull/2046

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2247>
2025-05-20 11:18:11 +00:00
Alicia Boya García
c29841dc1e cea608tott: make test less shocking by having more cues as context
The contents of the current test for cea608tott can be a bit shocking
without context about the source.

This patch adds more cues to the test so that a reader just trying to
understand the elements has more context that this is a news program.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2249>
2025-05-18 13:07:36 +02:00
Sebastian Dröge
236608f48e webrtc: Stop using deprecated API and require GStreamer 1.22 or newer
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2243>
2025-05-14 08:40:39 +03:00
Sebastian Dröge
d8d988427f Update plugins docs cache
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2243>
2025-05-13 20:14:33 +03:00
Sebastian Dröge
8366311a42 Update Cargo.lock
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2243>
2025-05-13 20:03:56 +03:00
Sebastian Dröge
6db8c1806c deny: Update
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2241>
2025-05-13 14:49:19 +03:00
Sebastian Dröge
8df3fbe4ed Update Cargo.lock
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2241>
2025-05-13 14:47:45 +03:00
Christoph Reiter
2079f23dde aws-lc-rs: Update to 1.13.1
This is required to fix the build with clang+mingw on Windows,
see https://github.com/aws/aws-lc/pull/2381

Updated via "cargo update -p aws-lc-rs --precise 1.13.1"

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2237>
2025-05-12 07:30:09 +00:00
Mathieu Duponchelle
d99e8a7e7f awstranslate: output buffer lists
This means we can still output sentences as a single unit, even when
using span-based mode.

Update `awspolly` to concatenate buffer lists together before sending
them out for synthesis, and remove the now-useless textwrap element from
transcriberbin's synthesis channels.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2235>
2025-05-06 13:35:32 +02:00
L. E. Segovia
4ee38b6cf9 deny: Allow webpki-root-certs license
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2233>
2025-05-05 16:15:41 +00:00
Mathieu Duponchelle
2e03d4f693 awstranslate: expose new accumulator-lateness property
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2221>
2025-05-05 15:41:09 +00:00
Mathieu Duponchelle
9a784d5979 awstranslate: fix docstring
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2221>
2025-05-05 15:41:09 +00:00
Mathieu Duponchelle
492ef81010 awstranslate: unit test accumulator logic
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2221>
2025-05-05 15:41:09 +00:00
Sebastian Dröge
144aeb615a fmp4mux: Fix handling of negative DTS in composition time offset
Actually negative DTS (i.e. < 0) was handled correctly before when
queueing buffers, but this didn't handle the case correctly where the
very same stream has DTS/PTS shifted to be positive (i.e. start DTS is
before earliest PTS).

To solve this, pass through all DTS as signed values and at the very end
for every fragment calculate the offset between the two in addition to
the PTS/DTS offset of each buffer, and adjust the composition time
offsets accordingly.

This way the final PTS of each buffer after demuxing is equal to the
actual running time of the very same buffer before muxing. Previously
all PTS would've been shifted forwards by a couple of frames, which then
broke A/V synchronization.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2232>
2025-05-05 16:47:34 +03:00
Sebastian Dröge
8f8a663555 fmp4mux: Add explanatory comment why tfdt is mapped to the earliest PTS
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2232>
2025-05-05 16:46:51 +03:00
Sebastian Dröge
a9a3a7a435 dav1ddec: Implement hack to finish output buffer with a reference count of 1
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2190>
2025-05-03 15:36:53 +00:00
Sebastian Dröge
2166befce7 dav1ddec: Set output frame duration via the codec frame
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2190>
2025-05-03 15:36:53 +00:00
Sebastian Dröge
9012099e62 dav1ddec: Directly decode into downstream allocated buffers if possible
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/670

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2190>
2025-05-03 15:36:53 +00:00
Sebastian Dröge
0afd415bcb dav1ddec: Simplify LATENCY query handling
And don't keep state locked while querying upstream.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2190>
2025-05-03 15:36:53 +00:00
Sebastian Dröge
6ee63a465d dav1ddec: Allocate output buffers from an internal buffer pool
In the best case we can directly output them without copying now.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2190>
2025-05-03 15:36:52 +00:00
Sebastian Dröge
ebaf8ce8a5 dav1ddec: Move more video format mapping logic into functions
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2190>
2025-05-03 15:36:52 +00:00
Sebastian Dröge
6ae34b751a dav1ddec: Keep state unlocked while calling into the decoder
This is a preparation for handling allocations ourselves from the
element as that would call back from the decoder into the element.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2190>
2025-05-03 15:36:52 +00:00