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}
43