fn portal_capture_loop(
index: usize,
ctl: Arc<PortalCtl>,
from_main: Receiver<ToHost>,
sink: FrameSink,
cursor_tx: Sender<CursorJob>,
dma_formats: Vec<(u32, Vec<u64>)>,
geoms: Vec<OutputGeom>,
) -> Result<(), String>Expand description
The capture thread of a portal-fed output: it holds the PipeWire stream of the output’s portal stream for as long as a Start aims at it, re-offering the stream’s configuration on every change, returning released buffers, and following the portal session across reopenings. Frames themselves are published by the stream’s own thread.