playa_ffmpeg/util/mathematics/
rounding.rs

1use crate::ffi::{AVRounding::*, *};
2
3#[derive(Eq, PartialEq, Clone, Copy, Debug)]
4pub enum Rounding {
5    Zero,
6    Infinity,
7    Down,
8    Up,
9    NearInfinity,
10    PassMinMax,
11}
12
13impl From<AVRounding> for Rounding {
14    #[inline(always)]
15    fn from(value: AVRounding) -> Self {
16        match value {
17            AV_ROUND_ZERO => Rounding::Zero,
18            AV_ROUND_INF => Rounding::Infinity,
19            AV_ROUND_DOWN => Rounding::Down,
20            AV_ROUND_UP => Rounding::Up,
21            AV_ROUND_NEAR_INF => Rounding::NearInfinity,
22            AV_ROUND_PASS_MINMAX => Rounding::PassMinMax,
23        }
24    }
25}
26
27impl From<Rounding> for AVRounding {
28    #[inline(always)]
29    fn from(value: Rounding) -> AVRounding {
30        match value {
31            Rounding::Zero => AV_ROUND_ZERO,
32            Rounding::Infinity => AV_ROUND_INF,
33            Rounding::Down => AV_ROUND_DOWN,
34            Rounding::Up => AV_ROUND_UP,
35            Rounding::NearInfinity => AV_ROUND_NEAR_INF,
36            Rounding::PassMinMax => AV_ROUND_PASS_MINMAX,
37        }
38    }
39}