use bytecodec::{ErrorKind, Result};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum AacPacketType {
SequenceHeader = 0,
Raw = 1,
}
impl AacPacketType {
pub(crate) fn from_u8(b: u8) -> Result<Self> {
Ok(match b {
0 => AacPacketType::SequenceHeader,
1 => AacPacketType::Raw,
_ => track_panic!(ErrorKind::InvalidInput, "Unknown aac packet type: {}", b),
})
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum SoundFormat {
LinearPcmPlatformEndian = 0,
Adpcm = 1,
Mp3 = 2,
LinearPcmLittleEndian = 3,
Nellymoser16khzMono = 4,
Nellymoser8KhzMono = 5,
Nellymoser = 6,
G711AlawLogarithmicPcm = 7,
G711MuLawLogarithmicPcm = 8,
Aac = 10,
Speex = 11,
Mp3_8khz = 14,
DeviceSpecificSound = 15,
}
impl SoundFormat {
pub(crate) fn from_u8(b: u8) -> Result<Self> {
Ok(match b {
0 => SoundFormat::LinearPcmPlatformEndian,
1 => SoundFormat::Adpcm,
2 => SoundFormat::Mp3,
3 => SoundFormat::LinearPcmLittleEndian,
4 => SoundFormat::Nellymoser16khzMono,
5 => SoundFormat::Nellymoser8KhzMono,
6 => SoundFormat::Nellymoser,
7 => SoundFormat::G711AlawLogarithmicPcm,
8 => SoundFormat::G711MuLawLogarithmicPcm,
10 => SoundFormat::Aac,
11 => SoundFormat::Speex,
14 => SoundFormat::Mp3_8khz,
15 => SoundFormat::DeviceSpecificSound,
_ => track_panic!(ErrorKind::InvalidInput, "Unknown FLV sound format: {}", b),
})
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub enum SoundRate {
Khz5 = 0,
Khz11 = 1,
Khz22 = 2,
Khz44 = 3,
}
impl SoundRate {
pub(crate) fn from_u8(b: u8) -> Result<Self> {
Ok(match b {
0 => SoundRate::Khz5,
1 => SoundRate::Khz11,
2 => SoundRate::Khz22,
3 => SoundRate::Khz44,
_ => track_panic!(ErrorKind::InvalidInput, "Unknown FLV sound rate: {}", b),
})
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub enum SoundSize {
Bit8 = 0,
Bit16 = 1,
}
impl SoundSize {
pub(crate) fn from_bool(b: bool) -> Self {
if b {
SoundSize::Bit16
} else {
SoundSize::Bit8
}
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub enum SoundType {
Mono = 0,
Stereo = 1,
}
impl SoundType {
pub(crate) fn from_bool(b: bool) -> Self {
if b {
SoundType::Stereo
} else {
SoundType::Mono
}
}
}