use cyberex::EnumRenames;
use derive_builder::Builder;
use derive_more::From;
use serde::Serialize;

#[derive(EnumRenames, Serialize, Debug, Clone, From)]
pub enum CodecConfig {
    #[serde(rename = "decoder-es")]
    DecoderEsConfig(DecoderEsConfig),
    #[serde(rename = "encoder-aac")]
    EncoderAACConfig(EncoderAACConfig),
}
#[derive(Default, Serialize, Debug, Clone)]
#[serde(rename_all = "lowercase")]
pub enum CodecHwDevice {
    #[default]
    Cpu,
    Cuda,
    Ascend,
}
#[derive(Default, Serialize, Builder, Clone, Debug)]
pub struct DecoderEsConfig {
    #[serde(default)]
    #[builder(default)]
    hwdevice: CodecHwDevice,
}
#[derive(Default, Serialize, Clone, Debug)]
pub struct EncoderAACConfig {}