ffmpeg_the_third/codec/encoder/
decision.rs

1use crate::ffi::*;
2use libc::c_int;
3#[cfg(feature = "serialize")]
4use serde::{Deserialize, Serialize};
5
6#[derive(Eq, PartialEq, Clone, Copy, Debug)]
7#[cfg_attr(feature = "serialize", derive(Serialize, Deserialize))]
8pub enum Decision {
9    Simple,
10    Bits,
11    RateDistortion,
12}
13
14impl From<c_int> for Decision {
15    fn from(value: c_int) -> Decision {
16        match value {
17            FF_MB_DECISION_SIMPLE => Decision::Simple,
18            FF_MB_DECISION_BITS => Decision::Bits,
19            FF_MB_DECISION_RD => Decision::RateDistortion,
20
21            _ => Decision::Simple,
22        }
23    }
24}
25
26impl From<Decision> for c_int {
27    fn from(value: Decision) -> c_int {
28        match value {
29            Decision::Simple => FF_MB_DECISION_SIMPLE,
30            Decision::Bits => FF_MB_DECISION_BITS,
31            Decision::RateDistortion => FF_MB_DECISION_RD,
32        }
33    }
34}