ffmpeg-the-third 5.0.0+ffmpeg-8.1

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

#[derive(Eq, PartialEq, Clone, Copy, Debug)]
#[cfg_attr(feature = "serialize", derive(Serialize, Deserialize))]
pub enum Compliance {
    VeryStrict,
    Strict,
    Normal,
    Unofficial,
    Experimental,
}

impl From<c_int> for Compliance {
    fn from(value: c_int) -> Self {
        match value {
            FF_COMPLIANCE_VERY_STRICT => Compliance::VeryStrict,
            FF_COMPLIANCE_STRICT => Compliance::Strict,
            FF_COMPLIANCE_NORMAL => Compliance::Normal,
            FF_COMPLIANCE_UNOFFICIAL => Compliance::Unofficial,
            FF_COMPLIANCE_EXPERIMENTAL => Compliance::Experimental,

            _ => Compliance::Normal,
        }
    }
}

impl From<Compliance> for c_int {
    fn from(value: Compliance) -> c_int {
        match value {
            Compliance::VeryStrict => FF_COMPLIANCE_VERY_STRICT,
            Compliance::Strict => FF_COMPLIANCE_STRICT,
            Compliance::Normal => FF_COMPLIANCE_NORMAL,
            Compliance::Unofficial => FF_COMPLIANCE_UNOFFICIAL,
            Compliance::Experimental => FF_COMPLIANCE_EXPERIMENTAL,
        }
    }
}