gst-plugins-rs/gst-plugin-threadshare/tests
Mathieu Duponchelle 53e948b8da proxy: fix blocking upwards state change
ProxySink previously blocked on receiving the source pad
of ProxySrc in its ReadyToPaused transition, which meant
ProxySrc had to transition to Ready at the same time.

The usual use case is for the source and sink to reside in
two separate pipelines, and such an arrangement easily led
to deadlocks, as examplified by the new test case.

Instead we now maintain two more global hash maps holding
per-context sink pads and src pads weak references, and
forward events to those when needed.

As ProxySink may not have a source pad context to run
a future on when receiving FlushStart, gst::Element::call_async
is used instead, with a simple oneshot channel used to synchronize
flush start and flush stop handling.
2020-02-05 21:35:11 +01:00
..
appsrc.rs ts: Pad wrapper for async processing 2019-12-21 08:56:43 +01:00
jitterbuffer.rs ts-jitterbuffer: add dedicated functions for state transitions + tests 2020-01-23 19:10:21 +01:00
pad.rs Update for Seqnum/GroupId API changes 2020-01-25 01:21:22 +02:00
pipeline.rs Fix various new clippy warnings from 1.40 2019-12-22 11:35:01 +02:00
proxy.rs proxy: fix blocking upwards state change 2020-02-05 21:35:11 +01:00
queue.rs threadsharing: migrate to async/await and tokio 0.2.0-alpha.6 2019-12-19 20:44:00 +01:00
tcpclientsrc.rs Fix various new clippy warnings from 1.40 2019-12-22 11:35:01 +02:00
udpsrc.rs ts: Pad wrapper for async processing 2019-12-21 08:56:43 +01:00