Skip to main content

Module driver

Module driver 

Source

Structs§

DriverRunner
Runs a Driver on its own background thread — the Driver analog of crate::pipeline::Pipeline, minus everything that only makes sense for a dataflow graph (Clock, Pause, Seek, the wire callback).
StopReceiver
Checked, not blocked on: a Driver owns a single self-contained loop with no downstream dataflow graph to cascade a stop through (unlike crate::pipeline::Pipeline’s control channel, which has to reach every Sink a Queue boundary away before it can call Stop fully handled). So DriverRunner::stop just flips a flag instead of sending something that has to be received and acked — nothing here can reproduce the deadlock that pattern is prone to when a receiver can legitimately go away without ever looping back to check it (see Pipeline’s own control_rx field docs for that history). Callers that need to know run has actually finished watch DriverRunner::bus instead, same convention as Pipeline.

Traits§

Driver
A background task with no Sink/Source ports of its own — nothing to push into, nothing to pull out of this object; whatever it produces or consumes happens through other Sink/Source pairs it mints on the side (e.g. WebRtcPeer handing out WebRtcTrackSink/WebRtcTrackSource). Reach for crate::pipeline::Pipeline/crate::element::SourceElement instead for anything that actually has a src_pads() dataflow graph to wire — Driver deliberately has no Pause/Seek/Clock, none of which have a sensible meaning for a connection that isn’t part of one.