Commit graph

4140 commits

Author SHA1 Message Date
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
Sebastian Dröge
52037c8aca dav1ddec: Store the output state instead of just the video info in the decoder state
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2190>
2025-05-03 15:36:52 +00:00
Sebastian Dröge
6df4adac31 fmp4mux: Use earliest PTS for the base media decode time (tfdt)
While this is supposed to be a decode time, this doesn't really match
the description in the specification. It starts at 0 and increases by
the duration of each fragment, i.e. is the sum of all previous sample
durations.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2223>
2025-05-02 21:03:19 +03:00
Sebastian Dröge
3012dac758 fmp4mux: Remove redundant if
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2223>
2025-05-02 19:05:12 +03:00
Sebastian Dröge
86d2f2ce1f fmp4mux: Write lmsg as compatible brand into the last fragment
While this is only defined as such in DASH, it's used more widely and
shouldn't hurt to always have it there.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2222>
2025-05-02 15:45:25 +03:00
Piotr Brzeziński
d10993e15e gstwebrtc-api: Support starting a producer session for a given consumer
Updates the API with necessary plumbing to allow to track consumers
being added/removed, as well as starting a producer session targeted at
a consumer peer waiting for one.

The example page has also been updated to demonstrate this
functionality.

Can be tested by launching a webrtcsrc without a peer-id specified.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2206>
2025-05-01 13:14:55 +00:00
Piotr Brzeziński
abf97ba2a9 webrtc: Allow producers to start a session for a chosen consumer
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2206>
2025-05-01 13:14:55 +00:00
Sebastian Dröge
0afe3e1846 Update everything else to bitstream-io 4.0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2219>
2025-04-30 13:01:22 +00:00