Sebastian Dröge
5dd0a23986
threadshare: Update for glib::Type API changes
2021-02-25 13:12:12 +02:00
Sebastian Dröge
0616c18703
Update for changed GLib signals API
2021-02-22 17:20:40 +02:00
Sebastian Dröge
cbda137fbf
Fix various warnings from clippy 1.50
2021-02-09 18:57:34 +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
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
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
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
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
François Laignel
8e38d861b4
threadshare: save upgrade in Pad functions
...
When initializing Pad functions in `Pad{Src,Sink}`, we downgrade the
`Pad{Src,Sink}` and upgrade it when necessary. This was implemented
to avoid reference cycles:
`gst::Pad` -> pad function -> `Pad{Src,Sink}` -> `gst::Pad`.
Since `Pad{Src,Sink}` reset the pad functions when dropping, there is
no cycles, so we can use an `Arc<Pad{Src,Sink}>` in the pad functions,
thus saving an `upgrade`.
2020-04-29 16:10:19 +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
François Laignel
dae38eb0a3
threadshare: benchmark: add throughput tracking
2020-04-25 23:18:20 +02:00
Sebastian Dröge
36f032ef15
Configure crate-type to cdylib/rlib consistently in Cargo.toml
...
And not in the source code, it's a build decision.
2020-04-24 15:02:12 +03:00
Sebastian Dröge
5a7fcfad7f
Fix various new clippy warnings with clippy 1.43
2020-04-24 13:55:01 +03:00
Mathieu Duponchelle
bdfb24abbd
jitterbuffer: release state lock when requesting pt map
...
This is similar to what the standard jitterbuffer does, and
is necessary to avoid deadlocks with the rtpbin session lock,
if the user calls onto any API that requires us to take the
state lock at the wrong time (eg setting the latency property,
clearing the pt map)
2020-04-22 12:40:23 +00:00
Sebastian Dröge
d08268627e
threadshare/jitterbuffer: Use GSlice allocator for the jitter buffer items
...
They're actually used as a hackish intrusive list around GQueue so using
a different allocator is rather dangerous. Or rather, this is generally
dangerous and shouldn't be done but ...
Also make sure to free items manually in finalize() so that any
contained buffers can also be unreffed.
2020-04-22 14:02:44 +03:00
Guillaume Desmottes
bdb0e72cc7
fix LGPL-2.1+ license in Cargo.toml
...
The proper SPDX name is LGPL-2.1-or-later, see https://spdx.org/licenses/
2020-04-16 13:07:21 +02:00
Mathieu Duponchelle
8e2b79a90c
threadshare: remove hand-rolled get_current_running_time
...
Instead, use the new Element method exposed in
<https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/450 >
2020-04-13 17:25:31 +00:00
Sebastian Dröge
5ad93604ef
threadshare: Call gst::init() in all tests
2020-04-13 15:00:27 +03:00
François Laignel
53194a64f3
threashare: benchmark: fix target path
2020-04-09 19:57:18 +02:00
Sebastian Dröge
577c980a6d
threadshare/socket: Implement Drop on the non-refcounted inner part of the socket
...
We don't want to run it every time a strong reference is dropped but
only at the very end. Otherwise dropping the socket stream will cause a
panic because the socket itself is still running.
2020-04-08 15:39:35 +03:00
Sebastian Dröge
4206b53c09
Mark GMutex mutex guards as #[must_use]
...
See gstreamer-rs commit b21f5764309f9f65666016a9069e1b938935e6f2
2020-04-08 15:24:07 +03:00
Sebastian Dröge
7173790da2
threadshare/udpsink: Return Flushing if the sender gets disconnected
...
This can only happen if the receiver is dropped, which only happens when
the task is stopped. As such, Flushing should be returned instead of
panicking.
2020-04-06 14:01:16 +03:00
Arun Raghavan
dc3c8fd049
Drop gst-plugin- prefix in plugin directory name
2020-04-05 19:10:47 +00:00