Skip to main content

selene_core/media_container/
sample_format.rs

1use serde::{Deserialize, Serialize};
2use symphonia::core::audio;
3
4#[derive(Debug, PartialEq, PartialOrd, Clone, Serialize, Deserialize, Copy)]
5pub enum SampleFormat {
6    U8,
7    U16,
8    U24,
9    U32,
10    S8,
11    S16,
12    S24,
13    S32,
14    F32,
15    F64,
16}
17
18impl From<audio::sample::SampleFormat> for SampleFormat {
19    fn from(value: audio::sample::SampleFormat) -> Self {
20        match value {
21            audio::sample::SampleFormat::U8 => Self::U8,
22            audio::sample::SampleFormat::U16 => Self::U16,
23            audio::sample::SampleFormat::U24 => Self::U24,
24            audio::sample::SampleFormat::U32 => Self::U32,
25            audio::sample::SampleFormat::S8 => Self::S8,
26            audio::sample::SampleFormat::S16 => Self::S16,
27            audio::sample::SampleFormat::S24 => Self::S24,
28            audio::sample::SampleFormat::S32 => Self::S32,
29            audio::sample::SampleFormat::F32 => Self::F32,
30            audio::sample::SampleFormat::F64 => Self::F64,
31        }
32    }
33}