Skip to main content

DeviceV2ipDetails

Struct DeviceV2ipDetails 

Source
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: V2ipStreamSource

The video stream this device sources.

§audio: V2ipStreamSource

The audio stream this device sources.

§anc: V2ipStreamSource

The ancillary-data stream this device sources.

§arc: V2ipStreamSource

The 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: V2ipDscpConfig

Per-stream DSCP marking.

§scaling: V2ipScalingSettings

Scaling mode, refresh rate and flags.

Implementations§

Source§

impl DeviceV2ipDetails

Source

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.

Source

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

Source§

fn clone(&self) -> DeviceV2ipDetails

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for DeviceV2ipDetails

Source§

impl Debug for DeviceV2ipDetails

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for DeviceV2ipDetails

Source§

fn default() -> DeviceV2ipDetails

Returns the “default value” for a type. Read more
Source§

impl Eq for DeviceV2ipDetails

Source§

impl PartialEq for DeviceV2ipDetails

Source§

fn eq(&self, other: &DeviceV2ipDetails) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for DeviceV2ipDetails

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.