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
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