Commit graph

1496 commits

Author SHA1 Message Date
Sebastian Dröge 34f8c4beac 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 18:09:02 +02:00
Sebastian Dröge 7bb42f3f5e dav1ddec: Add 8/16 bit grayscale support 2022-02-04 18:08:54 +02:00
Sebastian Dröge 9570fcaddd rav1enc: Support 8 bit grayscale input 2022-02-04 18:08:48 +02:00
Sebastian Dröge c194fb05f4 dav1ddec: Require correct alignment and stream format when running with GStreamer 1.20 2022-02-04 18:08:31 +02:00
Sebastian Dröge e024eb331d rav1enc: Include stream-format and alignment in the caps 2022-02-04 18:08:25 +02:00
Sebastian Dröge ed7b6e8c19 dav1ddec: Clean up state tracking a bit
And especially don't keep a decoder instance around while in Null state.
2022-02-04 18:08:16 +02:00
Sebastian Dröge 1a5473264e 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-04 18:08:16 +02:00
Sebastian Dröge 12a718cd88 dav1ddec: Pass element instance to debug logs 2022-02-04 18:08:16 +02:00
Tomasz Andrzejak a2320c1654 Bump hrtf to version 0.8
hrtfrender tests are now using a fake hrir configuration file which is
stripped of actual position coefficients. The generated config does not
work anymore.
2022-02-04 18:08:00 +02:00
Julian Sparber 78291ccae0 gtk4: Implement Default for PaintableSink 2022-02-04 18:07:54 +02:00
Sebastian Dröge 0f812765b5 hrtfrender: Switch back to hrtf 0.7
This needs some more work because of behaviour changes.
2022-02-04 18:07:49 +02:00
Sebastian Dröge 2ea91e053b Update to parking_lot 0.12 and hrtf 0.8 2022-02-04 18:07:40 +02:00
Sebastian Dröge e21c4e09c5 deny: Remove duplicated nom dependency and add env_logger 2022-02-04 18:06:51 +02:00
Sebastian Dröge 019a14a360 Update Cargo.lock 2022-01-31 15:03:26 +02:00
Sebastian Dröge 07a7420561 Rename self_ variables to imp for consistency 2022-01-18 15:48:34 +02:00
Sebastian Dröge 81a571bd8b Replace Foo::from_instance(foo) with foo.imp() 2022-01-18 15:48:28 +02:00
Sebastian Dröge 67fe856cfa Update Cargo.lock 2022-01-16 14:15:45 +02:00
Sebastian Dröge f84f54fc78 hlssink3: Fix version 2022-01-16 14:08:32 +02:00
Sebastian Dröge 00172c0485 rusoto: Add missing license file 2022-01-16 13:53:04 +02:00
Sebastian Dröge 574e4f6b64 Add SPDX-License-Identifier to all file headers 2022-01-15 21:44:40 +02:00
Sebastian Dröge 818a508ac5 Re-license LGPL-2.1 plugins to MPL-2
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/168
2022-01-15 21:44:39 +02:00
Sebastian Dröge a693ec5aae ci: Don't run cargo update 2022-01-15 21:39:28 +02:00
Sebastian Dröge 1b0ae5f75f Include Cargo.lock in the repository 2022-01-15 20:32:16 +02:00
Sebastian Dröge 8ffb6c1584 Switch to 0.15 branches of gtk-rs, and 0.18 of gstreamer-rs and provide a version 2022-01-15 20:31:40 +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
Thibault Saunier 3cc2b32756 meson: Only rebuild when files checked in git change
This allows for faster rebuild avoiding to run the target when nothing
changed.

This approach is not ideal as we should find a way to actually know when
to rebuild based on information from cargo itself but there seem to be
no way to do it at this point.
2022-01-13 10:12:13 +00:00
Jordan Petridis f78b97ba4a ci: stop installing gtk4 manually
It's now included in the base image we use.

https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/942
2022-01-12 22:24:22 +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
Guillaume Desmottes 16d35a789a deny: ignore aes related errors 2022-01-12 16:47:47 +01:00
Sebastian Dröge a07edc7cf4 gst-plugin-version-helper: Work around broken file times in crates from crates.io
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/177
2022-01-12 10:39:54 +00:00
Guillaume Desmottes 4576bea10c add textahead plugin
Plugin displaying upcoming text buffers ahead.
2022-01-12 08:47:23 +01:00
François Laignel 64dd588734 ts/runtime/scheduler: check must_awake before sleeping 2022-01-05 19:00:00 +01:00
François Laignel 1573522520 ts/runtime: rewrite runnable loop
Previous version relied on a plain loop / match / break because
I experimented different strategies. The while variant is better
for the final solution.
2022-01-05 18:59:43 +01:00
Guillaume Desmottes 8bab034bc8 uriplaylistbin: fix license when registering plugin 2022-01-03 00:08:53 +01:00
Guillaume Desmottes 0615a94cae spotify: fix license when registering plugin 2022-01-03 00:08:36 +01:00
Guillaume Desmottes 53cef60f2c spotifyaudiosrc: log error if setup() failed 2022-01-03 00:02:39 +01:00
Guillaume Desmottes faee72bf5b spotify: link the proper LICENSE file 2022-01-03 00:02:20 +01:00
Sebastian Dröge e2ecd77654 sodium: Port examples to clap 3 2022-01-02 09:13:55 +00:00
Guillaume Desmottes 9858eeeb00 spotify: relicense to MPL-2.0 2021-12-30 14:40:31 +01:00
Sanchayan Maity a43e21a414 videofx: roundedcorners: Fix missing copyright attribution 2021-12-29 16:15:43 +00:00
Guillaume Desmottes 61cdf47462 add spotify plugin
Plugin adding an element to play audio from Spotify.
2021-12-29 16:48:20 +01:00
Sebastian Dröge c5cba3fec5 deny: Remove unnecessary duplicated dependencies
These were all pulled in via the old tokio dependency of the threadshare
plugin.
2021-12-26 14:56:39 +02:00
François Laignel 5e4fc8b138 ts/executor: relax the static bound on enter
The function `enter` is executed in a blocking way from the caller's
point of view. This means that we can guaranty that the provided
function and its output will outlive the underlying Scheduler Task
execution. This requires an unsafe call to
`async_task::spawn_unchecked`. See:

https://docs.rs/async-task/latest/async_task/fn.spawn_unchecked.html
2021-12-25 11:25:56 +00:00
François Laignel 21d41ca244 deny.toml: don't ignore RUSTSEC-2021-0124
This advisory was ignored because we couldn't use a version for
the tokio fork that reflected that it was not vulnerable.

Also remove the tokio fork as an allowed git since we now use
our own executor for threadshare.
2021-12-25 11:25:56 +00:00
François Laignel 6163589ac7 ts/executor: replace tokio with smol-like implementation
The threadshare executor was based on a modified version of tokio
which implemented the throttling strategy in the BasicScheduler.
Upstream tokio codebase has significantly diverged from what it
was when the throttling strategy was implemented making it hard
to follow. This means that we can hardly get updates from the
upstream project and when we cherry pick fixes, we can't reflect
the state of the project on our fork's version. As a consequence,
tools such as cargo-deny can't check for RUSTSEC fixes in our fork.

The smol ecosystem makes it quite easy to implement and maintain
a custom async executor. This MR imports the smol parts that
need modifications to comply with the threadshare model and implements
a throttling executor in place of the tokio fork.

Networking tokio specific types are replaced with Async wrappers
in the spirit of [smol-rs/async-io]. Note however that the Async
wrappers needed modifications in order to use the per thread
Reactor model. This means that higher level upstream networking
crates such as [async-net] can not be used with our Async
implementation.

Based on the example benchmark with ts-udpsrc, performances seem on par
with what we achieved using the tokio fork.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/118

Related to https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/604
2021-12-25 11:25:56 +00:00
François Laignel db9c38aa93 ts/runtime: shuffle some structs to dedicated modules 2021-12-25 11:25:56 +00:00
François Laignel c5ef83d5b0 ts/runtime: use a directory for executor module
This will ease the introduction of other concepts which are required
for our own executor implementation.
2021-12-25 11:25:56 +00:00
François Laignel cd0773662f ts: migrate most tests so that they don't use tokio 2021-12-25 11:25:56 +00:00
Guillaume Desmottes bba26a9cf5 threadshare: remove unused import 2021-12-22 15:43:32 +01:00