Sebastian Dröge
03787ef857
rav1eenc: Use AtomicRefCell
instead of Mutex
for the state
...
It's only accessed from the streaming thread.
2022-02-14 14:36:50 +02:00
Sebastian Dröge
93bfa4d37a
rav1enc: Put container sequence header into the caps
2022-02-08 12:18:48 +02:00
Sebastian Dröge
22ae31bfcb
dav1ddec: Switch to dav1d 0.7
2022-02-07 16:06:03 +02:00
Sebastian Dröge
1b8ee90f83
rav1enc: Don't handle NeedMoreData
as "soft" error
2022-02-07 07:30:57 +00:00
Sebastian Dröge
d3d483d0b5
rav1enc: Simplify code
...
Sending a `None` frame is equivalent to calling `flush()` so no need to
do both.
2022-02-07 07:30:57 +00:00
Sebastian Dröge
7654567201
rav1enc: Set mastering display info, content light level and HDR related colorimetry
...
Configurable behind the "hdr" cargo feature that is enabled by default
but requires GStreamer 1.18.
2022-02-07 07:30:57 +00:00
Sebastian Dröge
1451e267cc
rav1enc: Expose various new settings
2022-02-07 07:30:57 +00:00
Sebastian Dröge
12f2b9282a
rav1enc: Switch from speed preset 5 to 6 as default
...
This is the default of rav1e nowadays.
2022-02-07 07:30:57 +00:00
Guillaume Desmottes
c879b4ee2e
cdg: update image and cdg_renderer
...
I pushed a cdg_renderer release using latest image.
2022-02-04 15:22:13 +01:00
Sebastian Dröge
858865b731
gtk4: Attach main context receiver from the main context's thread
...
Otherwise it will fail if the sink's state is changed from a different
thread.
See https://gitlab.freedesktop.org/dabrain34/GstPipelineStudio/-/issues/2
2022-02-04 13:51:31 +02:00
Sebastian Dröge
7c872bb92b
dav1ddec: Fix compilation after some API changes
2022-02-03 15:51:46 +02:00
Sebastian Dröge
cf46d9439b
dav1ddec: Add 8/16 bit grayscale support
2022-02-03 13:39:43 +02:00
Sebastian Dröge
240fa0b066
rav1enc: Support 8 bit grayscale input
2022-02-03 13:39:43 +02:00
Sebastian Dröge
5a4c8b9fc8
dav1ddec: Release input frames that immediately caused a decoding error
...
We're not going to get any output for them.
2022-02-03 11:04:57 +00:00
Sebastian Dröge
2c511fca50
dav1ddec: Require correct alignment and stream format when running with GStreamer 1.20
2022-02-03 11:04:57 +00:00
Sebastian Dröge
772fbaa073
rav1enc: Include stream-format and alignment in the caps
2022-02-03 11:04:57 +00:00
Sebastian Dröge
6ce3029e07
dav1ddec: Update for fixed dav1d-rs API
...
As a side effect this allows us also to handle errors more gracefully
and to reduce memory load by outputting decoded frames immediately.
Also the code was changed a bit to reduce the number of redundant mutex
lock/unlocks.
2022-02-03 11:04:57 +00:00
Sebastian Dröge
b795c0c392
dav1ddec: Clean up state tracking a bit
...
And especially don't keep a decoder instance around while in Null state.
2022-02-03 11:04:57 +00:00
Sebastian Dröge
6e28a17280
dav1ddec: Don't consider decoding errors as fatal
...
Instead use the `gst_video::video_decoder_error!` macro for allowing a
certain number of consecutive errors before actually failing.
2022-02-03 11:04:57 +00:00
Sebastian Dröge
c35d1cdc0c
dav1ddec: Pass element instance to debug logs
2022-02-03 11:04:57 +00:00
Julian Sparber
e419c18a87
gtk4: Implement Default for PaintableSink
2022-01-31 14:11:03 +00:00
Sebastian Dröge
42f9f99690
Update to parking_lot 0.12 and hrtf 0.8
2022-01-31 15:20:44 +02:00
Sebastian Dröge
f44b86cd30
Simplify some code around event/query views
2022-01-22 12:18:02 +02:00
Sebastian Dröge
65fcd55160
Update for event/message/query view API changes
2022-01-19 15:07:45 +02:00
Sebastian Dröge
763ad0cb18
Rename self_
variables to imp
for consistency
2022-01-17 20:09:18 +02:00
Sebastian Dröge
b2d0172422
Replace Foo::from_instance(foo)
with foo.imp()
2022-01-17 19:36:41 +02:00
Sebastian Dröge
51f8e963d6
Add SPDX-License-Identifier to all file headers
2022-01-15 21:18:47 +02:00
Sebastian Dröge
326449b3e6
Re-license LGPL-2.1 plugins to MPL-2
...
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/168
2022-01-15 21:05:11 +02:00
Sebastian Dröge
0c7764fa40
Update versions to 0.9.0
2022-01-15 20:33:49 +02:00
Sebastian Dröge
ab14c50d1c
Ignore clippy::non_send_fields_in_send_ty
lint
...
It's useless in its current shape and wrongly triggering on all types.
See https://github.com/rust-lang/rust-clippy/issues/8045
2022-01-14 12:09:57 +02:00
Sebastian Dröge
81f5f0f60c
Fix various clippy warnings
2022-01-12 19:51:08 +02:00
Mathieu Duponchelle
0bc7697600
sccenc: add output-padding property
...
When set to False, sccenc will only output non-padding byte pairs.
I cannot find reference documentation for the format, but the closest
thing I find to it is
http://www.theneitherworld.com/mcpoodle/SCC_TOOLS/DOCS/SCC_FORMAT.HTML ,
which doesn't have padding in the examples.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/635 >
2022-01-12 16:49:24 +00:00
Sanchayan Maity
a43e21a414
videofx: roundedcorners: Fix missing copyright attribution
2021-12-29 16:15:43 +00:00
Sebastian Dröge
3ed9e291c2
Update for decide/propose_allocation() API changes
2021-12-06 19:11:24 +02:00
Sebastian Dröge
66e987c174
Fix a couple of new clippy warnings
2021-12-02 22:31:52 +02:00
Sebastian Dröge
c46901d150
Fix or silence various new 1.57 clippy warnings
2021-11-30 16:31:50 +02:00
Sanchayan Maity
2c2cd8c2be
Implement rounded corners
...
This plugin takes I420/YUV and appends an alpha plane to give YUVA/A420
to round the corners analogous to the border-radius in CSS. Other video
formats like NV12 not supported yet. Support for other planar formats
will follow.
Not all ways of specifying border-radius as in CSS are implemented at
the moment. Currently, we only support specifying it in pixels and it
gets applied uniformly to all corners.
2021-11-22 17:04:07 +05:30
Sebastian Dröge
86f422592b
Update for glib::Enum
/ glib::Boxed
/ glib::flags!
macro renames
2021-11-22 11:04:26 +02:00
Sebastian Dröge
55aad51141
Update for glib constructor renames
...
See https://github.com/gtk-rs/gtk-rs-core/pull/384
2021-11-20 14:31:06 +02:00
Sebastian Dröge
288acaa7cc
cdg: Update test for child proxy property API changes
2021-11-20 10:47:02 +02:00
Sebastian Dröge
f817f6e9b9
Update to rav1e 0.5 and async-tungstenite 0.16
...
Also add an asm feature to rav1e, which requires nasm to be in place.
2021-11-17 10:10:00 +02:00
Mathieu Duponchelle
b738d5933d
tttojson: fix row computation
...
I hadn't really tested the element with pop-on mode, and the row
for each line in the input text was hardcoded to 13, which was
clearly wrong.
Switch to incrementing it properly.
2021-11-16 07:51:41 +00:00
Sebastian Dröge
e81047b8a2
cea608overlay: Fix compilation after Pango API changes
2021-11-13 12:33:55 +02:00
Mathieu Duponchelle
78d7cbd7dd
cea608overlay: expose timeout property
...
C.9 Automatic Caption Erasure (Preferred)
[...]
Some manufacturers have suggested building automatic timeout into their
decoders. They propose that if no data are received for the selected caption
channel within a given time, the decoder should automatically erase the
caption. Such erasure may supersede the intentions of the caption service
providers and institute one maximum display time for all captioning services.
If such a timeout is deemed necessary, however, the time limit should be no less
than 16 seconds, an amount of time said by caption service providers to be longer
than their most enduring caption. It is preferred, when automatic caption erasure
is used in a decoder, that only displayed memory be erased, since some caption
service providers may, contrary to recommended practice (see Section B.8.3), send
pop-on style caption data to non-displayed memory more than 16 seconds before
sending the EOC command which causes the caption to display.
2021-11-13 00:15:47 +01:00
Bilal Elmoussaoui
82be7b3ac5
adapt to ObjectExt improvements
2021-11-08 14:43:53 +02:00
Sebastian Dröge
d9bda62a47
Update for GLib/GStreamer API changes
...
And clean up a lot of related property/caps/structure code.
2021-11-06 09:34:10 +02:00
Sebastian Dröge
0a7d1639e7
Update to Rust edition 2021 and minimum supported Rust version to 1.56
2021-10-31 17:40:05 +02:00
Michael Farrell
5ae1f72162
cea608overlay: Update for multiple Pango API changes in gtk-rs-core#308
...
https://github.com/gtk-rs/gtk-rs-core/pull/308
2021-10-31 12:50:50 +02:00
Sebastian Dröge
da4122a721
closedcaption/mccenc: Update for glib::DateTime / TimeSpan API changes
2021-10-23 13:07:01 +03:00
Sebastian Dröge
b9541b2ca4
Update for GstObjectImpl API change
2021-10-23 12:31:33 +03:00
François Laignel
27b9f0d868
Improve usability thanks to opt-ops
...
The crate option-operations simplifies usage when dealing with
`Option`s, which is often the case with `ClockTime`.
2021-10-18 15:09:47 +02:00
Sebastian Dröge
70f0aa9758
gtk4: Add support for rendering overlay composition rectangles directly via GTK
2021-10-17 19:03:24 +00:00
Sebastian Dröge
c5d3a2efce
Update for event API changes
2021-10-17 17:30:38 +03:00
Sebastian Dröge
01a551f2ac
rav1enc/gifenc: Add VideoMeta to the supported metas in propose_allocation()
2021-10-16 16:21:49 +03:00
Sebastian Dröge
fe0075ad15
closedcaption/cea608overlay: Proxy the allocation query
2021-10-16 16:21:49 +03:00
Sebastian Dröge
cecacf5430
hsv: Port detecter/filter to VideoFilter base class
2021-10-16 16:21:49 +03:00
Sebastian Dröge
cf637d0288
gtk4: Add gst_video::VideoMeta to the allocation metas in propose_allocation()
2021-10-16 15:05:18 +03:00
Sebastian Dröge
d17c3483c1
video: Update for new decide_allocation() signature
2021-10-16 15:02:11 +03:00
Sebastian Dröge
6ec98ec5e4
Update to pretty-assertions 1.0
2021-10-14 10:20:19 +03:00
Bilal Elmoussaoui
30796fbe07
Add a GTK4 paintable sink plugin
...
Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
Co-authored-by: Jordan Petridis <jordan@centricular.com>
2021-10-13 12:28:51 +03:00
Sebastian Dröge
21e8c6dcd1
pngenc: Don't recreate the encoder after every frame
...
Version 0.17.2 of the encoder allows again to encode frame after frame
without creating a new encoder instance.
2021-10-09 12:14:37 +03:00
Jan Schmidt
3260651671
jsontovtt: Add an element for fragmented WebVTT
...
This element converts the CC JSON format to fragmented WebVTT.
Co-authored by Mathieu Duponchelle <mathieu@centricular.com>
2021-09-30 19:37:32 +00:00
Mathieu Duponchelle
bc587a09f8
cea608tojson: expose "unbuffered" property
...
In this mode, cues are output as soon as they are ready for
display, without a duration. This can be useful in live mode,
when downstream is OK with determining the duration after the
fact, through clear=True.
The consequence of this is that the current roll-up window will
be output repetitively, it is up to downstream to deal with that
how it prefers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/554 >
2021-09-30 17:05:01 +02:00
Mathieu Duponchelle
01cc9e23d8
transcriberbin: switch to passthrough on transcriber error
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/569 >
2021-09-28 16:17:57 +00:00
Sebastian Dröge
ea2a313d01
ffv1dec: Add support for 4:1:0 and 4:1:1 YUV
2021-09-18 12:34:31 +03:00
Sebastian Dröge
2878e4ce7c
ffv1dec: Fix decoding of 4:4:4 / 4:4:4:4 / 4:2:2 / 4:4:2:2 YUV formats
2021-09-18 12:34:31 +03:00
Sebastian Dröge
600d217e7d
ffv1dec: Add support for >8 bit color formats
2021-09-18 12:34:31 +03:00
Sebastian Dröge
08229402cd
ffv1dec: Don't copy decoded memory if the strides are not matching but downstream supports video meta
2021-09-18 12:34:31 +03:00
Sebastian Dröge
fd1c0a7518
ffv1dec: Drop decoder state before calling VideoDecoder::negotiate()
...
It calls into other elements via the allocation query and the caps
event, which makes it dangerous to keep a mutex locked at the same time.
2021-09-18 12:34:31 +03:00
Sebastian Dröge
4c8c398aa4
dav1d: Don't configure a buffer pool and don't require one for videometa support
...
dav1d is allocating memory itself and we directly forward that without
using any downstream buffer pool.
2021-09-18 11:58:59 +03:00
Sebastian Dröge
f4613bfc07
Use Buffer::from_mut_slice() in more places
...
This allows downstream to map the memory mutable.
2021-09-18 11:58:59 +03:00
Sebastian Dröge
b9864acad6
ffv1: Lower minimum required GStreamer version to 1.12
2021-09-10 09:42:25 +03:00
Sebastian Dröge
c8fc082968
ffv1: Update version to 0.8.0 like elsewhere
2021-09-10 09:22:11 +03:00
Arun Raghavan
bb3949aeda
video: Add a new ffv1 decoder plugin
2021-09-10 06:20:31 +00:00
Sebastian Dröge
426dc4c54d
flavors: Update to nom 7
2021-09-09 06:41:49 +00:00
Sebastian Dröge
96d86eaa06
Clean up clippy warnings and CI configuration
...
Put clippy overrides into the sources files instead of the CI
configuration, and fix various warnings / clean up code.
2021-09-08 12:35:41 +00:00
Sebastian Dröge
434fe8e56f
closedcaption/mccenc: Fix unit test to not require changing the version number in the output every time
2021-09-03 09:12:25 +03:00
Mathieu Duponchelle
715418c005
tttocea608: don't erase display memory before loading new pop-on
...
There is no point to that, the code is already factored in such
a way that erase_display_memory is inserted at the correct time,
including while loading the next pop-on captions in non displayed
memory.
2021-09-02 00:21:24 +02:00
Sebastian Dröge
4a870af19c
Update various dependencies
2021-08-26 09:44:43 +03:00
Sebastian Dröge
848b296390
Add capi feature to all plugin crates
...
This fixes the build with cargo-c 0.9.2.
2021-08-11 20:51:36 +03:00
Mathieu Duponchelle
b7d1c178a3
tttocea608: clean up locking
...
Locking order of state and settings was inconsistent, and causing
deadlocks. Fix and document it, consistently drop locks before
chaining up events / pushing and avoid sequentially unlocking /
relocking settings in the same local code path.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/539 >
2021-08-03 18:23:53 +02:00
Sebastian Dröge
052365ba1a
Fix various needless-borrow clippy warnings and others
2021-07-30 13:53:35 +03:00
Ruben Gonzalez
54d8c5f6a9
Delete minimum GStremer required version for some plugins
...
Tested building the pluging with cargo-c and running gst-inspect-1.0
in a Ubuntu Xenial 18.04 LTS. It contains GStreamer 1.8.3.
2021-07-20 21:49:24 +02:00
Mathieu Duponchelle
5397f4bfaf
transcriberbin: remove leftover debug dot dumps
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/531 >
2021-07-15 23:24:29 +00:00
Sebastian Dröge
f733f90333
closedcaption/mccenc: Fix unit test
...
The expected output contains the plugin version.
2021-07-09 14:14:51 +03:00
Sebastian Dröge
24ec79cd1a
Update versions to 0.8.0 for the master branch
2021-07-09 13:49:33 +03:00
Sebastian Dröge
1c3ae0f89a
Update versions to 0.7.0
2021-07-09 13:49:21 +03:00
SeaDve
82df25694a
gifenc: Add property to configure speed
...
Fixes #157 .
2021-07-05 11:50:41 +03:00
Mathieu Duponchelle
3cdc5870a1
transcriberbin: new high-level bin for speech to Closed Caption
...
This new element puts together some of the elements we've written
in recent times (awstranscriber, tttocea608, textwrap, cccombiner)
into a convenience high-level element.
The design of the element is AV in -> AV (+ CC metas) out.
The element exposes property to set and unset a "passthrough" mode,
during which the transcriber element's state is set to NULL but kept
in the bin, in order for the user to be able to set properties on
sub elements no matter what the current mode is, using the
GstChildProxy interface.
In addition, the element ensures that the latency it reports stays
fixed so that playback continues uninterrupted.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/528 >
2021-06-30 02:07:01 +02:00
Mathieu Duponchelle
23219c3c09
tttocea608: don't pad up to first input timestamp
...
When receiving data from a live upstream element, the first buffer
may have a non-0 timestamp (running time), and the element incorrectly
pushed padding buffers up to that timestamp, resulting in much confusion
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/527 >
2021-06-25 23:26:30 +00:00
Mathieu Duponchelle
d6f6f1a777
cea608overlay: expose "black-background" property
...
As stated in the spec:
> In addition, the user must have the capability to select a black
> background over which the captioned letters are displaced.
The property is MUTABLE_PLAYING
2021-06-18 09:48:44 +00:00
François Laignel
5439f14e57
fix clippy warnings
2021-06-05 10:36:22 +02:00
François Laignel
e16cad7c8f
video: migrate to new ClockTime design
2021-06-05 10:36:21 +02:00
François Laignel
8dfc872544
use gst::glib where applicable
2021-06-03 20:53:16 +02:00
Blaxar Waldarax
e9f0a3b8ac
hsv: added support for more RGB and BGR formats to hsvdetector and hsvfilter
2021-05-18 07:00:14 +00:00
Sebastian Dröge
04a60b8f46
Update repository URL for gtk-rs "core" crates
2021-05-13 09:50:08 +03:00
Sebastian Dröge
f4a3881dcf
Fix new 1.52 clippy warnings
2021-05-05 12:13:16 +03:00
Sebastian Dröge
3d24f1da22
closedcaption/cea608overlay: Fix compilation with cairo API changes
2021-05-04 14:31:58 +03:00
Sebastian Dröge
8bda233d02
rav1e: Fix compilation after VideoColorRange::Range0255 got renamed to VideoColorRange::Range0_255
2021-05-01 10:49:36 +03:00
Sebastian Dröge
75959e8c63
cdgdec: Remove unneeded VideoDecoderExtManual import
2021-04-26 14:58:15 +03:00