Sebastian Dröge
51f8e963d6
Add SPDX-License-Identifier to all file headers
2022-01-15 21:18:47 +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
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
Guillaume Desmottes
bba26a9cf5
threadshare: remove unused import
2021-12-22 15:43:32 +01:00
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
c68f6b2631
Update for GLib signal emit_by_name()
API changes
2021-11-21 18:15:04 +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
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
b9541b2ca4
Update for GstObjectImpl API change
2021-10-23 12:31:33 +03:00
Sebastian Dröge
052365ba1a
Fix various needless-borrow clippy warnings and others
2021-07-30 13:53:35 +03:00
François Laignel
8f81cb8812
generic: 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
Sebastian Dröge
94f75c29a1
threadshare: Use appsink callbacks instead of signals in the tests
2021-05-31 10:33:50 +03:00
Sebastian Dröge
ee0b2e79da
threadshare: Fix compilation after cleanup in the glib bindings
2021-05-07 10:24:45 +03:00
Sebastian Dröge
15cf738616
Update for Value trait refactoring
2021-04-25 15:48:55 +03:00
François Laignel
67c5871957
fix-getters-calls 0.3.0 pass
2021-04-20 18:19:58 +02:00
François Laignel
7d17f88941
post fix-getters manual updates
2021-04-13 17:24:20 +02:00
François Laignel
06accc8d98
fix-getters-{def,calls} pass
2021-04-12 15:57:19 +02:00
Sebastian Dröge
2cada57efc
Update for the subclassing glib/gstreamer bindings API changes
2021-03-09 17:07:13 +02:00
Sebastian Dröge
dc0c5f7611
Update for new #[glib::object_subclass] attribute macro
2021-03-07 18:27:00 +02:00
Sebastian Dröge
0616c18703
Update for changed GLib signals API
2021-02-22 17:20:40 +02:00
Sebastian Dröge
b649e9b076
Use gst::PARAM_FLAG_MUTABLE_PLAYING and others consistently everywhere
...
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/139
2021-01-31 15:43:00 +02:00
Sebastian Dröge
d4ce1a33f2
Update for glib/gstreamer bindings API changes
2021-01-25 14:43:05 +02:00
Sebastian Dröge
38ecd43074
Use typed integer literals instead of casting
2020-12-29 17:29:46 +02:00
Sebastian Dröge
3d617371af
Update for macro renames
2020-12-20 20:43:45 +02:00
Sebastian Dröge
ea6c05e16c
Update everything for glib macro renamings
2020-12-18 00:44:49 +02:00
Sebastian Dröge
708c6aa57e
Update for new simplified glib::Object::new() API
2020-12-17 18:15:54 +02:00
Sebastian Dröge
1c9c22df0c
generic: Update to 2018 edition
2020-11-23 10:28:33 +02:00
Sebastian Dröge
af0337c26c
generic: Update for subclassing API changes
2020-11-15 18:25:42 +02:00
Sebastian Dröge
e1784ea01b
threadshare/udpsink: Remove host/port properties
...
In combination with the clients property and the add/remove signals this
behaves very inconsistent as there are multiple ways to do the same.
2020-08-11 12:04:36 +03:00
Sebastian Dröge
0eb777cf5a
Update for removal of ObjectImpl::get_type_data()
2020-07-26 18:46:32 +03:00
Sebastian Dröge
a28455f0ce
Update for Element::post_message() signature change
2020-06-30 21:28:02 +00:00
François Laignel
e40267e95d
event,message,query: update instantiation
...
See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/532
2020-06-25 11:26:32 +02:00
Sebastian Dröge
60321edb8c
Update for new_with_XXX/new_from_XXX function renaming
2020-06-16 11:56:48 +03:00
Guillaume Desmottes
e85799b9d6
use new constructor names
2020-06-11 13:07:01 +02:00
François Laignel
f0793587f6
threadshare/TaskImpl: allow transition hooks to fail...
...
... and add error handlers for iterate and transitions hooks with
default implementation.
2020-05-25 18:31:49 +02:00
François Laignel
1bea2ad279
threadshare: introduce TaskImpl trait
...
TaskImpl is the trait for specific Task behaviour. It is the basis
of a new Task model. The main motivation for this model is to ease
threadsafe implementations of state transitions.
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/298
2020-05-25 18:31:48 +02:00
François Laignel
26634f591a
threadshare: build Pad{Src,Sink} with handlers
...
Handlers for `Pad{Src,Sink}` are assigned when `prepare` is called
which prevents them from handling pre-prepare queries.
See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/247
2020-04-29 16:08:16 +02:00
François Laignel
c414f78248
threadshare: fix race condition in tcpclientsrc test
2020-04-28 20:47:08 +02:00
François Laignel
957aac94ae
threadshare: align some properties with their C counterparts
...
Some ts-elements properties don't match the name, type or default
value of the C elements counterparts.
2020-04-27 11:22:26 +02:00
Sebastian Dröge
5a7fcfad7f
Fix various new clippy warnings with clippy 1.43
2020-04-24 13:55:01 +03:00
Arun Raghavan
dc3c8fd049
Drop gst-plugin- prefix in plugin directory name
2020-04-05 19:10:47 +00:00