moq_karp/audio/
codec.rs

1use super::*;
2
3use derive_more::{Display, From};
4use std::str::FromStr;
5
6#[derive(Debug, Clone, PartialEq, Eq, Display, From)]
7pub enum AudioCodec {
8	AAC(AAC),
9
10	#[display("opus")]
11	Opus,
12
13	#[display("{_0}")]
14	Unknown(String),
15}
16
17impl FromStr for AudioCodec {
18	type Err = Error;
19
20	fn from_str(s: &str) -> Result<Self, Self::Err> {
21		if s.starts_with("mp4a.40.") {
22			return AAC::from_str(s).map(Into::into);
23		} else if s == "opus" {
24			return Ok(Self::Opus);
25		}
26
27		Ok(Self::Unknown(s.to_string()))
28	}
29}