mod av1;
mod codec;
mod dimensions;
mod h264;
mod h265;
mod vp9;
pub use av1::*;
pub use codec::*;
pub use dimensions::*;
pub use h264::*;
pub use h265::*;
pub use vp9::*;
use bytes::Bytes;
use serde::{Deserialize, Serialize};
use serde_with::{hex::Hex, DisplayFromStr};
use crate::Track;
#[serde_with::serde_as]
#[serde_with::skip_serializing_none]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
pub struct Video {
pub track: Track,
#[serde_as(as = "DisplayFromStr")]
pub codec: VideoCodec,
#[serde(default, skip_serializing_if = "Bytes::is_empty")]
#[serde_as(as = "Hex")]
pub description: Bytes,
pub resolution: Dimensions,
#[serde(default)]
pub bitrate: Option<u32>,
}