Skip to main content

selene_core/
codec.rs

1use serde::{Deserialize, Serialize};
2
3mod trait_impls;
4
5/// All supported audio codecs
6#[derive(Debug, PartialEq, PartialOrd, Ord, Eq, Copy, Clone, Serialize, Deserialize)]
7pub enum Codec {
8    Flac,
9    Mp3,
10    LibOpus,
11    LibVorbis,
12    Pcms16le,
13    Pcms24le,
14    Pcms32le,
15    Pcmf32le,
16}
17
18impl Codec {
19    #[must_use]
20    pub fn codec_name(&self) -> &str {
21        match self {
22            Codec::Flac => "flac",
23            Codec::Mp3 => "mp3",
24            Codec::LibOpus => "libopus",
25            Codec::LibVorbis => "libvorbis",
26            Codec::Pcms16le => "pcm_s16le",
27            Codec::Pcms24le => "pcm_s24le",
28            Codec::Pcms32le => "pcm_s32le",
29            Codec::Pcmf32le => "pcm_f32le",
30        }
31    }
32}