Commit graph

70 commits

Author SHA1 Message Date
Sebastian Dröge 84896e6468 Update to rand 0.8 2021-01-09 12:34:42 +02:00
Guillaume Desmottes 8bc2e5ebb8 use cargo-c to produce cdy and static libs
cargo-c will produce a pkg-config file making it easier to statically
link plugins.

Also add 'static' features for plugins depending on < 1.14 as this is the
minimal required version to use static linking because of ABI changes in
core.
2021-01-04 12:26:45 +01:00
Marijn Suijten 1a7c4c14cc Fix clippy::redundant_pattern_matching 2021-01-02 17:55:06 +01:00
Sebastian Dröge 38ecd43074 Use typed integer literals instead of casting 2020-12-29 17:29:46 +02:00
Sebastian Dröge 7e1181ab84 threadshare: Return a proper error type instead of () 2020-12-29 17:29:27 +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
Mathieu Duponchelle 09561686b8 jitterbuffer: mark from_glib fn as unsafe
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/446>
2020-12-08 20:03:20 +01:00
Sebastian Dröge 46651e31c4 sodium: Handle error from Adapter::copy() 2020-12-07 11:42:48 +02:00
Abdul Rehman 87d7b44dd2 ts-udpsink: Post Message on SinkMessage event 2020-11-24 20:01:50 +05:00
Sebastian Dröge 1c9c22df0c generic: Update to 2018 edition 2020-11-23 10:28:33 +02:00
Sebastian Dröge d56ae71e0e Update for ObjectImpl::get_property() being infallible now 2020-11-19 18:25:53 +02:00
Sebastian Dröge df6a229f58 Fix or silence various clippy warnings 2020-11-19 15:31:50 +00:00
Abdul Rehman 7e64652fa7 threadshare/udpsrc: Fix retrieve-sender-address default value 2020-11-17 09:18:26 +00:00
Guillaume Desmottes b9f8ce9995 meson: add support for static build
There is no way to dynamically ask Cargo to build static or dynamic lib
so we have to build both and pick the one we care when doing the meson
processing.

Fix #88
2020-11-16 15:30:32 +01:00
Sebastian Dröge af0337c26c generic: Update for subclassing API changes 2020-11-15 18:25:42 +02:00
Abdul Rehman 178c7155a3 threadshare/udpsrc: SocketAddr to InetSocketAddress direct conversion 2020-11-10 22:31:41 +05:00
Sebastian Dröge 9c48de75d8 Update for glib_wrapper! API changes 2020-11-07 13:14:00 +02:00
Wonchul Lee 469ab53377 threadshare/udpsrc: Fix to update settings
It fixes to update settings along with prepared socket and port number
2020-11-06 16:42:38 +09:00
Sebastian Dröge 1f446f6b64 Switch to the combined gtk-rs and gstreamer-rs repositories 2020-11-01 10:24:57 +02:00
François Laignel 4eacce80a5 threadshare: runtime: simplify a function thanks to clippy 2020-10-20 23:45:01 +02:00
François Laignel 7c3e69bb4a Fix ClockTime comparisons not being Ord and use saturating_sub
See:
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/607
2020-10-20 23:45:01 +02:00
Sebastian Dröge eced2006e3 threadshare: Update pin-project dependency to 1.0 2020-10-17 12:07:30 +03:00
Seungha Yang 5cba2b002b threadshare/socket: Fix build error on Windows
error[E0412]: cannot find type `Error` in this scope
   --> generic\threadshare\src\socket.rs:237:56
    |
237 |     pub fn set_tos(&self, qos_dscp: i32) -> Result<(), Error> {
    |                                                        ^^^^^ not found in this scope
2020-10-01 01:40:08 +09:00
Sebastian Dröge eaaf4bcb21 threadshare/jitterbuffer: Remove unused imports
Not required anymore after a fix in glib.
2020-09-01 09:54:41 +03:00
Sebastian Dröge b8f9e0efc8 threadshare/udpsink: Don't hold settings lock while getting clients property
Otherwise we can deadlock between this and render().
2020-08-11 12:23:16 +03: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 89346fa945 threadshare/udpsink: Don't hold settings lock while calling into the sink pad handler to clear the clients
Otherwise we can deadlock because of a lock order issue:
 - render() is called with the sink pad handler lock and takes the
   settings lock
 - clearing clients takes the sink pad handler lock
2020-08-10 09:39:07 +03:00
Sebastian Dröge a022bbe260 Fix some new clippy warnings 2020-07-28 18:52:11 +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 e9b61b733d Add LICENSE files to each individual crate 2020-07-10 13:06:28 +03:00
Sebastian Dröge a28455f0ce Update for Element::post_message() signature change 2020-06-30 21:28:02 +00:00
François Laignel e2f27e77ce threadshare: use tokio tag 2020-06-30 09:25:20 +00:00
Sebastian Dröge f62c11f851 Update for functions returning a Builder being renamed to builder() instead of new()
And new video event APIs.
2020-06-25 19:49:07 +03: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 9bb3e75fb9 Update to use the new pad builders for safely setting pad functions
Only two uses of unsafely setting the pad functions is left:
- fallbacksrc for overriding the chain function of the proxy pad of a
  ghost pad
- threadshare for overriding the pad functions after creationg, which
  probably needs some fixing at some point
2020-06-22 11:28:19 +03: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
Philippe Normand 737bd459e4 jitterbuffer: Remove un-needed mut qualifiers 2020-06-06 10:26:06 +01:00
Mathieu Duponchelle 3d26d2f27b sync elements: implement provide_clock
Since those are using the clock for sync, they need to also
provide a clock for good measure. The reason is that even if
downstream elements provide a clock, we don't want to have
that clock selected because it might not be running yet.
2020-06-02 19:31:58 +02:00
François Laignel dfaf59a59b threadshare: simplify Pad{Src,Sink} implementations
Pad{Src,Sink}[Ref] delegate some functions to their respective
Pad{Src,Sink}Inner. Since they act as smart pointers, we can
safely implement the Deref trait to simplify the implementations.
2020-05-30 08:30:27 +00:00
Sebastian Dröge 08da51744b threadshare: Update from the deprecated net2 to the socket2 crate 2020-05-29 13:07:14 +03:00
François Laignel 04f85f6dbd threadshare: return false when Flush{Start,Stop} fails 2020-05-25 18:31:49 +02:00
François Laignel 244f6dd6f7 threadshare: fix Transition naming 2020-05-25 18:31:49 +02:00
François Laignel 725eb0a093 threadshare: spawn StateMachine on the futures::executor::ThreadPool
StateMachines are spawned on a runtime::Context which uses a tokio
runtime. The StateMachine doesn't need all the features from tokio
such as the IO and timers drivers.

This commit makes use of a light-weight futures executor to spawn
the StateMachines.
2020-05-25 18:31:49 +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 5c9bbc6818 threadshare: Task: reduce memory usage
Using dynamic dispatch instead of monomorphization reduces the lib size
and memory use without affecting CPU nor throughput significantly.
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 4cba9d1e53 threadshare: src elements: don't reset configured_caps
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/113
2020-04-29 21:37:22 +02:00