ffmpeg_next/codec/encoder/
comparison.rs

1use ffi::*;
2use libc::c_int;
3
4#[derive(Eq, PartialEq, Clone, Copy, Debug)]
5pub enum Comparison {
6    SAD,
7    SSE,
8    SATD,
9    DCT,
10    PSNR,
11    BIT,
12    RD,
13    ZERO,
14    VSAD,
15    VSSE,
16    NSSE,
17    W53,
18    W97,
19    DCTMAX,
20    DCT264,
21    CHROMA,
22}
23
24impl From<c_int> for Comparison {
25    fn from(value: c_int) -> Comparison {
26        match value {
27            FF_CMP_SAD => Comparison::SAD,
28            FF_CMP_SSE => Comparison::SSE,
29            FF_CMP_SATD => Comparison::SATD,
30            FF_CMP_DCT => Comparison::DCT,
31            FF_CMP_PSNR => Comparison::PSNR,
32            FF_CMP_BIT => Comparison::BIT,
33            FF_CMP_RD => Comparison::RD,
34            FF_CMP_ZERO => Comparison::ZERO,
35            FF_CMP_VSAD => Comparison::VSAD,
36            FF_CMP_VSSE => Comparison::VSSE,
37            FF_CMP_NSSE => Comparison::NSSE,
38            FF_CMP_W53 => Comparison::W53,
39            FF_CMP_W97 => Comparison::W97,
40            FF_CMP_DCTMAX => Comparison::DCTMAX,
41            FF_CMP_DCT264 => Comparison::DCT264,
42            FF_CMP_CHROMA => Comparison::CHROMA,
43
44            _ => Comparison::ZERO,
45        }
46    }
47}
48
49impl From<Comparison> for c_int {
50    fn from(value: Comparison) -> c_int {
51        match value {
52            Comparison::SAD => FF_CMP_SAD,
53            Comparison::SSE => FF_CMP_SSE,
54            Comparison::SATD => FF_CMP_SATD,
55            Comparison::DCT => FF_CMP_DCT,
56            Comparison::PSNR => FF_CMP_PSNR,
57            Comparison::BIT => FF_CMP_BIT,
58            Comparison::RD => FF_CMP_RD,
59            Comparison::ZERO => FF_CMP_ZERO,
60            Comparison::VSAD => FF_CMP_VSAD,
61            Comparison::VSSE => FF_CMP_VSSE,
62            Comparison::NSSE => FF_CMP_NSSE,
63            Comparison::W53 => FF_CMP_W53,
64            Comparison::W97 => FF_CMP_W97,
65            Comparison::DCTMAX => FF_CMP_DCTMAX,
66            Comparison::DCT264 => FF_CMP_DCT264,
67            Comparison::CHROMA => FF_CMP_CHROMA,
68        }
69    }
70}