Commit graph

1547 commits

Author SHA1 Message Date
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
Guillaume Desmottes
c99b7785f9 ci: add gst-build job schedule job 2021-11-02 14:25:32 +01:00
Guillaume Desmottes
32ef12e738 meson: fix out of tree build
Needed for gst-build integration. Thanks to Michael Farrell for the fix
suggestion.

Fix #171
2021-11-02 10:18:13 +01: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
Sebastian Dröge
db30cfcc74 ci: Install cargo-c 0.9.4 until our minimum supported Rust version is 1.56 2021-10-23 10:37:55 +03:00
Guillaume Desmottes
acce0ab4fc meson: build all workspaces all together
It's now possible thanks to cargo-c 0.9.3. Should reduce build time of
all plugins.

Fix #165
2021-10-19 07:49:22 +00:00
Guillaume Desmottes
97f45a0f77 README: newer cargo-c can now take the workspace name
Easier to use than the manifest path.
2021-10-19 07:49:22 +00:00
Sebastian Dröge
6111d0f4ed deny: Also ignore RUSTSEC-2020-0159 for now
Also waiting for https://github.com/chronotope/chrono/pull/578
2021-10-19 09:44:54 +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
bd8a7e8df7 deny: Ignore RUSTSEC-2020-0071 for now
Waiting for https://github.com/chronotope/chrono/pull/578
2021-10-18 09:46:49 +03:00
Michael Farrell
b0cebbedbc readme: Fix GST_PLUGIN_PATH instructions to include target triple.
This change also puts the `target/` directory first, for locally-built
plugins to take priority over distribution-provided plugins. It also
encloses the environment variable in quotes, in case it contains paths with
spaces.
2021-10-18 03:01:05 +00: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
54c8f5b3ab fallbackswitch: Remove bundled aggregator copy and require GStreamer 1.18
1.18 is old enough at this point and carrying around a copy of
 aggregator is not sustainable.
2021-10-17 17:35:45 +03: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
76a33e8f47 tutorial: Port Rgb2Gray to VideoFilter base class 2021-10-16 15:24:00 +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
Sebastian Dröge
6f7a8f36de deny: Add gtk4-rs repo URL to allow-git 2021-10-14 10:03:17 +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
1a830c7c78 Update for glib::source_remove() removal 2021-10-12 06:31:53 +00: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
Vivia Nikolaidou
a132fdb8be togglerecord: Add is-live mode
No "gap eating" behaviour, will forward incoming segment
2021-10-04 16:44:04 +03:00
Vivia Nikolaidou
f6aa03b58a togglerecord: Fix lock ordering
Fixes deadlocks.

Correct lock ordering is:
1) Main stream state lock
2) Other stream state lock
3) Recording state lock
2021-10-04 13:18:20 +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
François Laignel
ed90b338f8 ts: runtime: add delay_for_at_least
The time driver for the threadshare runtime assigns the timer
entries to the nearest throttling time frame so that the timer
fires as close as possible to the expected instant. This means
that the timer might fire before or after the expected instant
(at most `wait / 2` away).

In some cases, we don't want the timer to fire early. The new
function `delay_for_at_least` ensures that the timer is assigned
to the time frame after the expected instant.
2021-09-30 09:00:05 +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
b1bd3020fa audioloudnorm: Clamp to the expected limits instead of asserting
The calculations on the floating point numbers can't get out of the
expected range by construction expect for rounding errors at the limits.
Rounding errors at the limits shouldn't lead to assertions, so instead
clamp to the limits.
2021-09-28 13:53:21 +03:00
Sebastian Dröge
69bb09f7ad rusoto/s3: Allow passing custom AWS-compatible regions
For the region property this would be provided as
    `region-name+https://region.end/point`
while for the URI this unfortunately has to be base32 encoded to allow
usage as the host part of the URI.
2021-09-28 06:23:07 +00:00
Sebastian Dröge
502b336361 rusoto: Implement auth via explicit access-key/secret-access-key properties
This allows passing them explicitly as strings to the elements instead
of relying on system/per-user configuration.
2021-09-27 17:00:36 +03:00
Sebastian Dröge
3ce6a5f403 Only list plugins without external C dependencies as default-members of the cargo workspace
`cargo build` will only build the default members while `cargo build --all`
would continue to build all plugins.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/167
2021-09-25 14:11:55 +03:00
Sebastian Dröge
7708b65e97 json: Replace line_reader.rs symlink with a copy for now
Windows doesn't handle symlinks very well.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/166
2021-09-22 16:38:58 +03:00
Sebastian Dröge
afd736dfec Update for new PushSrc::create() signature 2021-09-19 22:27:20 +03:00
Sebastian Dröge
a03b52a975 csound: Fix nightly compiler warning in test
warning: trailing semicolon in macro used in expression position
   --> audio/csound/tests/csound_filter.rs:52:10
    |
52  |         );
    |          ^
...
403 |         &CSD!(ksmps, ichannels, ochannels, "ain, ain2 ins", "out ain"),
    |          ------------------------------------------------------------- in this macro invocation
    |
    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
    = note: this warning originates in the macro `CSD` (in Nightly builds, run with -Z macro-backtrace for more info)
2021-09-18 10:08:40 +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
484cad00ce deny: Update 2021-09-11 08:45:25 +03:00
Sebastian Dröge
ea394fb06e rusoto: Update to async-tungstenite 0.15 2021-09-11 08:44:32 +03:00