#[cfg(any(feature = "alloc", feature = "std"))]
use crate::prelude::Vec;
pub mod infoframe_type {
pub const VENDOR_SPECIFIC: u8 = 0x01;
pub const AVI: u8 = 0x02;
pub const SOURCE_PRODUCT_DESCRIPTOR: u8 = 0x03;
pub const AUDIO: u8 = 0x04;
pub const MPEG_SOURCE: u8 = 0x05;
pub const NTSC_VBI: u8 = 0x06;
pub const DYNAMIC_RANGE_MASTERING: u8 = 0x07;
}
#[non_exhaustive]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct InfoFrameDescriptor {
pub type_code: u8,
pub vendor_oui: Option<u32>,
}
impl InfoFrameDescriptor {
pub fn new(type_code: u8, vendor_oui: Option<u32>) -> Self {
Self {
type_code,
vendor_oui,
}
}
}
#[non_exhaustive]
#[cfg(any(feature = "alloc", feature = "std"))]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct VendorSpecificBlock {
pub oui: u32,
pub payload: Vec<u8>,
}
#[cfg(any(feature = "alloc", feature = "std"))]
impl VendorSpecificBlock {
pub fn new(oui: u32, payload: Vec<u8>) -> Self {
Self { oui, payload }
}
}