ffmpeg_next/util/chroma/
location.rs

1use ffi::AVChromaLocation::*;
2use ffi::*;
3
4#[derive(Eq, PartialEq, Clone, Copy, Debug)]
5pub enum Location {
6    Unspecified,
7    Left,
8    Center,
9    TopLeft,
10    Top,
11    BottomLeft,
12    Bottom,
13}
14
15impl From<AVChromaLocation> for Location {
16    fn from(value: AVChromaLocation) -> Self {
17        match value {
18            AVCHROMA_LOC_UNSPECIFIED => Location::Unspecified,
19            AVCHROMA_LOC_LEFT => Location::Left,
20            AVCHROMA_LOC_CENTER => Location::Center,
21            AVCHROMA_LOC_TOPLEFT => Location::TopLeft,
22            AVCHROMA_LOC_TOP => Location::Top,
23            AVCHROMA_LOC_BOTTOMLEFT => Location::BottomLeft,
24            AVCHROMA_LOC_BOTTOM => Location::Bottom,
25            AVCHROMA_LOC_NB => Location::Unspecified,
26        }
27    }
28}
29
30impl From<Location> for AVChromaLocation {
31    fn from(value: Location) -> AVChromaLocation {
32        match value {
33            Location::Unspecified => AVCHROMA_LOC_UNSPECIFIED,
34            Location::Left => AVCHROMA_LOC_LEFT,
35            Location::Center => AVCHROMA_LOC_CENTER,
36            Location::TopLeft => AVCHROMA_LOC_TOPLEFT,
37            Location::Top => AVCHROMA_LOC_TOP,
38            Location::BottomLeft => AVCHROMA_LOC_BOTTOMLEFT,
39            Location::Bottom => AVCHROMA_LOC_BOTTOM,
40        }
41    }
42}