ffmpeg-the-third 5.0.0+ffmpeg-8.1

Safe FFmpeg wrapper (FFmpeg 5+ compatible fork of the ffmpeg crate)
Documentation
use crate::ffi::*;
#[cfg(feature = "serialize")]
use serde::{Deserialize, Serialize};

#[derive(Eq, PartialEq, Clone, Copy, Debug)]
#[cfg_attr(feature = "serialize", derive(Serialize, Deserialize))]
pub enum Rounding {
    Zero,
    Infinity,
    Down,
    Up,
    NearInfinity,
    PassMinMax,
}

impl From<AVRounding> for Rounding {
    #[inline(always)]
    fn from(value: AVRounding) -> Self {
        use AVRounding as AV;

        match value {
            AV::ZERO => Rounding::Zero,
            AV::INF => Rounding::Infinity,
            AV::DOWN => Rounding::Down,
            AV::UP => Rounding::Up,
            AV::NEAR_INF => Rounding::NearInfinity,
            AV::PASS_MINMAX => Rounding::PassMinMax,

            _ => unimplemented!(),
        }
    }
}

impl From<Rounding> for AVRounding {
    #[inline(always)]
    fn from(value: Rounding) -> AVRounding {
        use AVRounding as AV;

        match value {
            Rounding::Zero => AV::ZERO,
            Rounding::Infinity => AV::INF,
            Rounding::Down => AV::DOWN,
            Rounding::Up => AV::UP,
            Rounding::NearInfinity => AV::NEAR_INF,
            Rounding::PassMinMax => AV::PASS_MINMAX,
        }
    }
}