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
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
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
Sebastian Dröge
5eee9e9eee
skia: Update to 0.84
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2220 >
2025-04-29 08:25:39 +03:00
Thibault Saunier
5a4e536d6a
skia: Implement a video compositor using skia
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1847 >
2025-04-28 21:26:02 +03:00
Doug Nazar
52cf612ead
gtk4: Avoid deprecated function with newer gtk
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2166 >
2025-04-22 18:17:22 +00:00
Sebastian Dröge
1ea767ac2a
Update to bitstream-io 3
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2211 >
2025-04-22 07:21:56 +00:00
Sebastian Dröge
594fbfd649
Fix various new clippy warnings because of the MSRV bump
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2203 >
2025-04-14 13:35:43 +03:00
Sebastian Dröge
b4540e465b
gtk4: Allow any windows-sys version >= 0.52 and <= 0.59
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2201 >
2025-04-11 18:03:23 +03:00
Matthew Waters
4e64b63bfe
tttocea708: fix origin-row handling for roll-up in CEA-708
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2191 >
2025-04-10 04:21:07 +00:00
Mathieu Duponchelle
23afeb3258
transcriberbin: make auto passthrough work when transcriber is a bin
...
For instance, when using translation bin the source of an error message
might be the transcriber it contains, we should still go to passthrough
in that case.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2165 >
2025-04-09 18:42:38 +00:00
Sebastian Dröge
20f25ba775
Revert "dav1ddec: Use max-frame-delay value from the decoder instead of calculating it"
...
This reverts commit 64b6661548
.
This needs more work because the decoder often does not know the correct
value in the beginning.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2189 >
2025-04-08 12:15:39 +00:00
Sebastian Dröge
64b6661548
dav1ddec: Use max-frame-delay value from the decoder instead of calculating it
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2185 >
2025-04-08 09:24:18 +03:00
Matthew Waters
08f9565369
build: update closedcaption deps
...
cea708-types to 0.4.0
- Includes https://github.com/ystreet/cea708-types/pull/24 which fixes cea708mux
producing full DTVCCPacket's.
cdp-types to 0.3.0 (updates to cea708-types 0.4.0)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2183 >
2025-04-07 15:19:53 +10:00
Matthew Waters
6273e05395
cea708mux: Improve support for overflowing input captions
...
Input captions on multiple input pads can be bursty and may overflow an
individual output packet if naively put into an output packet leading to a
potential panic of WouldOverflow(1).
Fix by actively tracking the free space of what a generated packet would produce
and delaying output of everything that would overflow. This is in addition to
the already existing service overflow detection.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2183 >
2025-04-07 15:19:53 +10:00
Sebastian Dröge
2e2bbda7ba
Update gstreamer-rs / gtk-rs dependencies
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2174 >
2025-04-05 18:14:56 +03:00
Sebastian Dröge
b916b7db55
dav1ddec: Allow working with incomplete decoder colorimetry
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2170 >
2025-04-04 09:07:10 +00:00
Sebastian Dröge
70ad4410e1
dav1ddec: Support RGB encoded AV1
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4341
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2170 >
2025-04-04 09:07:10 +00:00
Sebastian Dröge
24536fef73
colordetect: Change to videofilter base class
...
And also work in passthrough mode to not require all input buffers to be
writable unnecessarily.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2131 >
2025-03-26 19:17:35 +00:00
Sebastian Dröge
d9e3ea3619
dav1ddec: Drain decoder on caps changes if necessary
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2136 >
2025-03-26 11:44:18 +00:00
Sebastian Dröge
fc444ba5e7
dav1ddec: Use downstream buffer pool for copying if video meta is not supported
...
And if strides are not matching either, which they usually don't for
dav1d because of its 128 pixel alignment requirements.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/661
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2134 >
2025-03-26 00:38:44 +00:00
Sebastian Dröge
230e612b8e
vvdec: Don't copy decoded frames if strides/offsets are matching
...
Even if videometa is not supported downstream we can avoid copying if
the strides/offsets are matching the default ones, which often enough
they do.
This avoids copying when e.g. using fakesink after the decoder most of
the time.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2134 >
2025-03-26 00:38:44 +00:00
Sebastian Dröge
da836c01c9
dav1ddec: Only update unknown parts of the upstream colorimetry and not all of it
...
And also don't replace the whole upstream video-info but modify it.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/673
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2132 >
2025-03-25 23:03:30 +00:00
Sebastian Dröge
24144739c4
Update gtk-rs / gstreamer-rs dependencies and update for API changes
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2141 >
2025-03-25 18:49:47 +00:00
tomaszmi
ddecf2812d
cdg: typefind: Division by zero fix - fixed formatting
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2137 >
2025-03-24 16:44:44 +01:00
tomaszmi
5edcad3734
cdg: typefind: Division by zero fix
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2137 >
2025-03-24 16:29:11 +01:00
Sebastian Dröge
5c912446a9
gtk4: Consider surface scale factor when proposing window dimensions
...
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/646
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2125 >
2025-03-10 14:07:28 +02:00
Mathieu Duponchelle
780c724902
translationbin: expose read-only translator property on source pads
...
This lets users easily change the tokenization method on the translator
object for instance.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2124 >
2025-03-10 10:02:58 +02:00
Mathieu Duponchelle
ebcb8f220b
transcriberbin: fix cea608mux start time selection
...
cea608mux is set to force-live=true, which means it will not wait for a
first buffer to select a start time.
There was however a problem when manually syncing the state of its
containing bin as we do: when doing so while the state of the containing
bin is still transitioning to Playing, the element first gets a 0 base
time distributed, before its containing bin finally gets the correct
base time and redistributes it.
In this interval cea608mux could pick a start time, then end up waiting
for ever to timeout.
This commit works around the issue by simply unlocking the state of the
inner bins but not syncing it when in Paused, as the subsequent state
change to Playing, if it happens, will trigger the state change of the
elements anyway.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2115 >
2025-03-07 16:24:21 +00:00
Mathieu Duponchelle
e31e5b2c6f
transcriberbin: fix caption-source selection ..
...
with recent enough cccombiner.
Originally, dropping transcriptions was enough to support
caption-source=inband, as cccombiner did not implement output
scheduling.
However now that it does, even if no captions arrive on the caption pad
the combiner will still output padding.
Recent-enough combiners however expose an `input-meta-processing`
property which lets us achieve the desired behavior, we thus make use of
it when available.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2115 >
2025-03-07 16:24:21 +00:00
Carlos Bentzen
6ba49c4dce
vvdec: add VVdeC VVC/H.266 decoder element
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1279 >
2025-03-05 20:51:44 +01:00
Sebastian Dröge
873ea52138
closedcaption: Update to itertools 0.14
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2117 >
2025-03-04 09:58:39 +02:00
Sebastian Dröge
ceda820236
gtk4: Update to windows-sys 0.59
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2117 >
2025-03-04 09:58:39 +02:00
Sebastian Dröge
21947c28a6
videofx: Update image-hasher to 3
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2117 >
2025-03-03 16:42:09 +02:00
Sebastian Dröge
e0fdbfa2c1
webp: Don't require default features of libwebp-sys2
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2117 >
2025-03-03 13:49:10 +02:00
Mathieu Duponchelle
d0db66d61e
transcriberbin: implement dynamic language update
...
Previously, transcriberbin only supported updating translation languages
while playing by resetting the state of the transcriber to NULL
beforehand, as for instance the speechmatics transcriber needs to
reestablish a connection to request new languages.
Now that translationbin exists, we can request new languages without
restarting the transcriber (this commit also implements support for this
in translationbin).
There is some code duplication as the old method still needs to be
supported, and not all code was trivially factorizable, but after some
refactoring most of the code for updating languages is shared
nevertheless.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2072 >
2025-02-26 17:00:13 +01:00
Matthew Waters
ccf8adb6ae
closedcaption: only increase dtvcc packet sequence if we have services
...
Otherwise, we can produce DTVCC packets that skip sequence numbers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2103 >
2025-02-24 05:35:38 +00:00
Matthew Waters
3feb4fcf51
tttocea708: don't reset the service writer for every incoming caption
...
This will break when using pop-on captions
It's also not needed every single time and can be relegated to only when
changing services.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2103 >
2025-02-24 05:35:38 +00:00
Sebastian Dröge
93ee2ee70d
Fix various new Rust 1.85 clippy warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2104 >
2025-02-21 11:16:57 +02:00
Matthew Waters
0a35219c90
closedcaption: add CDP service information inject element
...
Overwrites the service information descriptor with the value specified in the
services property.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2043 >
2025-02-17 10:25:01 +00:00
Sebastian Dröge
bb5e0c9917
closedcaption: Update to winnow 0.7
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2082 >
2025-02-17 09:26:35 +02:00
Sebastian Dröge
9d6272b8e0
Update to rand 0.9
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2082 >
2025-02-17 09:26:35 +02:00
Sebastian Dröge
5256f1e00c
cea608tocea708: Fix SMPTE 334-1a field flag usage
...
If the flag is set then this is field 0, otherwise it is field 1. The
code had this inverted. See also cece286fe8
.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2074 >
2025-02-14 00:00:36 +00:00