Commit graph

1272 commits

Author SHA1 Message Date
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
Arun Raghavan
c515ee5a01 Update README with recently added plugins 2021-09-10 05:17:46 -04:00
Sebastian Dröge
e61bfa1ea9 ci: Update to dav1d 0.9.2 2021-09-10 10:21:01 +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
Jordan Petridis
610f98dc2d
ci: avoid spawning 2 pipelines for each commit
When an MR is open, you can have both a normal and a "detached"
pipeline.

They have different properties, but a detached pipeline is
enough for us and identical to the normal one, so we can avoid
the extra load on the CI.

https://docs.gitlab.com/ee/ci/jobs/job_control.html#avoid-duplicate-pipelines

https://docs.gitlab.com/ee/ci/yaml/index.html#switch-between-branch-pipelines-and-merge-request-pipelines
2021-09-09 06:06:25 +03: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
Mathieu Duponchelle
626df03961 aws_transcriber: fix CRC check
This was broken when porting to crc 2, based on:

https://github.com/mrhooray/crc-rs/issues/62#issuecomment-850591181

> CRC_32_BZIP2 is a different algorithm from CRC_32_IEEE, try CRC_32_ISO_HDLC instead.

The correct algorithm for replacing checksum_ieee is not CRC_32_BZIP2.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/555>
2021-09-03 23:37:14 +02: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
338e334c8a deny.toml: Update 2021-09-01 08:58:59 +03:00
Mathieu Duponchelle
1a4e6d58f4 net/rusoto: implement parser for AWS transcription file
AWS can generate JSON files containing a full transcript, implement
a simple push parser to support the format.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/547>
2021-08-27 19:53:57 +00:00
Vivia Nikolaidou
6f14ebdfee togglerecord: Notify main_stream_cond on release_pad
Otherwise, it would deadlock when releasing first the primary stream and
then the secondary one, because it will wait in the "secondary stream"
handling for the main stream to be fed, which will never happen.
2021-08-27 11:59:33 +03:00
Sebastian Dröge
cfbc062743 deny.toml: Update 2021-08-26 09:44:43 +03:00
Sebastian Dröge
4a870af19c Update various dependencies 2021-08-26 09:44:43 +03:00
Christian Kohlstedde
a8a3a6ec3e ebur128level: Fix mode bitflags
Currently the flag of true peak and sample peak are the same and
therefore true peak always wins, sample peak never.
2021-08-25 08:23:18 +03:00
Sebastian Dröge
4894e7b3ee
Update for fallible Object::set_property_from_str() 2021-08-17 15:01:25 +03:00
Jordan Petridis
6b9f915286
ci: update base image to debian 11
Like it was done for the bindings [1]

Also update the ci-template sha

[1] https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/836
2021-08-17 15:01:25 +03:00
Jan Beich
f5cc0e50fe meson: optionalize pango dependency used by video/closedcaption
Similar to -Dpango=<auto|enabled|disabled> in gst-plugins-base.
2021-08-15 16:05:24 +00:00
Jan Beich
fced787a63 meson: inherit python3 version used by Meson itself
python3 symlink may not be available
2021-08-15 12:57:33 +00: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
Sebastian Dröge
120f4ab84b json: Add cargo-c metadata 2021-08-05 18:26:47 +03:00
Mathieu Duponchelle
19dcb8159a fallbackswitch: only drop MISSING_DATA gap events pre queue
Regular gap events can be output by sources such as cefsrc in
normal operation, and should not trigger an active pad change.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/538>
2021-08-04 15:12:02 +00: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