ffmpeg_next/codec/encoder/
motion_estimation.rs

1use libc::c_int;
2
3#[derive(Eq, PartialEq, Clone, Copy, Debug)]
4pub enum MotionEstimation {
5    Zero,
6    Full,
7    Log,
8    Phods,
9    Epzs,
10    X1,
11    Hex,
12    Umh,
13    Iter,
14    Tesa,
15}
16
17impl From<c_int> for MotionEstimation {
18    fn from(value: c_int) -> MotionEstimation {
19        match value {
20            1 => MotionEstimation::Zero,
21            2 => MotionEstimation::Full,
22            3 => MotionEstimation::Log,
23            4 => MotionEstimation::Phods,
24            5 => MotionEstimation::Epzs,
25            6 => MotionEstimation::X1,
26            7 => MotionEstimation::Hex,
27            8 => MotionEstimation::Umh,
28            9 => MotionEstimation::Iter,
29            10 => MotionEstimation::Tesa,
30
31            _ => MotionEstimation::Zero,
32        }
33    }
34}
35
36impl From<MotionEstimation> for c_int {
37    fn from(value: MotionEstimation) -> c_int {
38        match value {
39            MotionEstimation::Zero => 1,
40            MotionEstimation::Full => 2,
41            MotionEstimation::Log => 3,
42            MotionEstimation::Phods => 4,
43            MotionEstimation::Epzs => 5,
44            MotionEstimation::X1 => 6,
45            MotionEstimation::Hex => 7,
46            MotionEstimation::Umh => 8,
47            MotionEstimation::Iter => 9,
48            MotionEstimation::Tesa => 10,
49        }
50    }
51}