pub enum PushOutcome {
Accepted,
Reconfigure(Reconfigure),
Qos(QosMessage),
Bitrate(u32),
}Expand description
Outcome of pushing a packet downstream. Sources and transforms must
react to Reconfigure before pushing any further data; terminal sinks
and intermediate adapters that can’t renegotiate may ignore it. Qos is
advisory: the packet still flowed, but the producer may shed load.
Variants§
Accepted
Downstream accepted the packet; continue normally.
Reconfigure(Reconfigure)
Downstream signaled a reconfigure request between this push and
the previous one. The producer should handle the request before
pushing further DataFrames.
Qos(QosMessage)
Downstream is behind the clock (a sink dropped a late frame). Advisory: the producer may skip ahead to shed load. Reconfigure takes priority when both are pending (negotiation correctness over QoS).
Bitrate(u32)
Downstream reports a target send bitrate in bits/second (a WebRTC sink
relaying its congestion-control / BWE estimate). Advisory: an encoder
upstream should retarget its bitrate. Lowest priority of the reverse
signals (Reconfigure > Qos > Bitrate); a held estimate surfaces on a
later push, and BWE updates far slower than the frame rate. A target of
0 is the shed-layer idle hint (M722): the consumer downstream is
discarding this stream (a starved simulcast layer), so the encoder
should mostly stop encoding until a non-zero target resumes it.
Trait Implementations§
Source§impl Clone for PushOutcome
impl Clone for PushOutcome
Source§fn clone(&self) -> PushOutcome
fn clone(&self) -> PushOutcome
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more