pub struct DeviceV2ipDetails {
pub video: V2ipStreamSource,
pub audio: V2ipStreamSource,
pub anc: V2ipStreamSource,
pub arc: V2ipStreamSource,
pub tx_rate: Option<u8>,
pub dscp: V2ipDscpConfig,
pub scaling: V2ipScalingSettings,
}Expand description
The local encoder/decoder configuration of a V2IP device.
Fields§
§video: V2ipStreamSourceThe video stream this device sources.
audio: V2ipStreamSourceThe audio stream this device sources.
anc: V2ipStreamSourceThe ancillary-data stream this device sources.
arc: V2ipStreamSourceThe audio-return stream this device sources.
tx_rate: Option<u8>Encoder rate in units of 10Mb/s, or None when the sender offered no
rate.
A rate-only write carries the rate on its own; every other controller write puts a value outside the valid range here, which firmware drops as invalid so that address-only and scaling writes leave the peer’s rate alone.
dscp: V2ipDscpConfigPer-stream DSCP marking.
scaling: V2ipScalingSettingsScaling mode, refresh rate and flags.
Implementations§
Source§impl DeviceV2ipDetails
impl DeviceV2ipDetails
Sourcepub const fn source_is_valid(&self) -> bool
pub const fn source_is_valid(&self) -> bool
Reports whether the source block carries usable addresses.
Firmware requires video and anc; audio is optional and is carried with them.
Sourcepub fn merge(self, previous: Option<Self>) -> Self
pub fn merge(self, previous: Option<Self>) -> Self
Folds a received device configuration onto the cached one.
Every field is optional behind its own validity marker: the payload is zeroed before a sender fills in the one field it is writing, so a controller writing a TX rate sends zeroed addresses and a controller writing addresses sends an out-of-range rate. Firmware applies each field only behind its own test, so replacing the whole cached config on every frame would make the peer read back with its addresses, rate or marking gone.
Trait Implementations§
Source§impl Clone for DeviceV2ipDetails
impl Clone for DeviceV2ipDetails
Source§fn clone(&self) -> DeviceV2ipDetails
fn clone(&self) -> DeviceV2ipDetails
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more