1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
use libc::c_int;

#[derive(Eq, PartialEq, Clone, Copy, Debug)]
pub enum MotionEstimation {
    Zero,
    Full,
    Log,
    Phods,
    Epzs,
    X1,
    Hex,
    Umh,
    Iter,
    Tesa,
}

impl From<c_int> for MotionEstimation {
    fn from(value: c_int) -> MotionEstimation {
        match value {
            1 => MotionEstimation::Zero,
            2 => MotionEstimation::Full,
            3 => MotionEstimation::Log,
            4 => MotionEstimation::Phods,
            5 => MotionEstimation::Epzs,
            6 => MotionEstimation::X1,
            7 => MotionEstimation::Hex,
            8 => MotionEstimation::Umh,
            9 => MotionEstimation::Iter,
            10 => MotionEstimation::Tesa,

            _ => MotionEstimation::Zero,
        }
    }
}

impl From<MotionEstimation> for c_int {
    fn from(value: MotionEstimation) -> c_int {
        match value {
            MotionEstimation::Zero => 1,
            MotionEstimation::Full => 2,
            MotionEstimation::Log => 3,
            MotionEstimation::Phods => 4,
            MotionEstimation::Epzs => 5,
            MotionEstimation::X1 => 6,
            MotionEstimation::Hex => 7,
            MotionEstimation::Umh => 8,
            MotionEstimation::Iter => 9,
            MotionEstimation::Tesa => 10,
        }
    }
}