ffmpeg_the_third/software/resampling/
engine.rs

1use crate::ffi::*;
2use crate::sys::SwrEngine::*;
3#[cfg(feature = "serialize")]
4use serde::{Deserialize, Serialize};
5
6#[derive(Eq, PartialEq, Copy, Clone, Debug)]
7#[cfg_attr(feature = "serialize", derive(Serialize, Deserialize))]
8pub enum Engine {
9    Software,
10    SoundExchange,
11}
12
13impl From<SwrEngine> for Engine {
14    fn from(value: SwrEngine) -> Engine {
15        match value {
16            SWR_ENGINE_SWR => Engine::Software,
17            SWR_ENGINE_SOXR => Engine::SoundExchange,
18            SWR_ENGINE_NB => Engine::Software,
19
20            #[cfg(feature = "non-exhaustive-enums")]
21            _ => unimplemented!(),
22        }
23    }
24}
25
26impl From<Engine> for SwrEngine {
27    fn from(value: Engine) -> SwrEngine {
28        match value {
29            Engine::Software => SWR_ENGINE_SWR,
30            Engine::SoundExchange => SWR_ENGINE_SOXR,
31        }
32    }
33}