use bon::Builder;
#[derive(Debug, Default, Builder)]
pub struct CodecConfig {
#[builder(default)]
pub(crate) vconf: VConf,
#[builder(default)]
pub(crate) aconf: AConf,
}
#[derive(Debug, Default, Builder)]
pub struct VConf {
pub(crate) bitrate: Option<i64>,
pub(crate) size: Option<(i32, i32)>,
pub(crate) gop: Option<i32>,
pub(crate) format: Option<VFormat>,
}
#[derive(Debug, Default, Builder)]
pub struct AConf {
pub(crate) nb_channels: Option<i32>,
pub(crate) sample_rate: Option<i32>,
pub(crate) format: Option<AFormat>,
}
#[allow(missing_docs)]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum VFormat {
H264,
HEVC,
AV1,
}
#[allow(missing_docs)]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum AFormat {
AAC,
FLAC,
}