pub struct Channel {
pub kind: ChannelKind,
pub name: String,
pub input: Option<String>,
pub output: Option<String>,
pub codec: String,
pub fps: u32,
pub layers: Vec<Layer>,
pub max_bitrate_kbps: u32,
}Fields§
§kind: ChannelKindvideo, sensor or command.
name: StringThe channel’s name as shown to the pilot and used in SeydSession.send.
input: Option<String>Where the bytes come from: rtsp:// or rtp:// for video, udp:// for
a sensor. Required for video and sensor channels without layers.
output: Option<String>Where a command channel delivers each driver message, as one UDP
datagram per message.
codec: StringA WebCodecs codec string for video (avc1.42001f, hev1.…, mjpeg);
json or octet-stream for messages.
fps: u32Nominal frame rate of a video channel; 0 for messages.
layers: Vec<Layer>Simulcast layers. Empty means the single input above — the ordinary
case, and what every pre-simulcast config keeps doing.
max_bitrate_kbps: u32The most this video channel’s publisher can encode, in kbps; 0 (the
default) means it has no limit of its own. Set it when the encoder
tops out below the QoS profile’s ceiling — a drone whose highest
setting is 4 Mbps under the quality profile’s 6 — so the rate
controller’s range, floor and video-config requests stay within
what the publisher can deliver.
Implementations§
Source§impl Channel
impl Channel
Sourcepub fn inputs(&self) -> Vec<(u8, String)>
pub fn inputs(&self) -> Vec<(u8, String)>
The channel’s inputs as (layer_id, url), lowest layer first. A
single-input channel yields exactly one, at layer 0, so callers need no
special case.
Sourcepub fn layer_specs(&self) -> Vec<VideoLayer>
pub fn layer_specs(&self) -> Vec<VideoLayer>
The channel’s layers as the core declares them, lowest first.