Commit graph

270 commits

Author SHA1 Message Date
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 2d6a220c00 Update all versions to 0.6.0 2020-04-15 20:39:50 +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 bc5d05f5e8 Update all documentation to point to the updated repository name
Just gst-plugin-rs -> gst-plugins-rs
2020-04-05 19:10:47 +00:00
Arun Raghavan dc3c8fd049 Drop gst-plugin- prefix in plugin directory name 2020-04-05 19:10:47 +00:00
Arun Raghavan 205b6040fb Reorganise plugins into directories by function
This should start making navigating the tree a little easier to start
with, and we can then move to allowing building specific groups of
plugins as well.

The plugins are moved into the following hierarchy:

  audio
    / gst-plugin-audiofx
    / gst-plugin-claxon
    / gst-plugin-csound
    / gst-plugin-lewton
  generic
    / gst-plugin-file
    / gst-plugin-sodium
    / gst-plugin-threadshare
  net
    / gst-plugin-reqwest
    / gst-plugin-rusoto
  utils
    / gst-plugin-fallbackswitch
    / gst-plugin-togglerecord
  video
    / gst-plugin-cdg
    / gst-plugin-closedcaption
    / gst-plugin-dav1d
    / gst-plugin-flv
    / gst-plugin-gif
    / gst-plugin-rav1e

  gst-plugin-tutorial
  gst-plugin-version-helper
2020-04-05 19:10:46 +00:00