ffmpeg_next/util/chroma/
location.rs1use crate::ffi::AVChromaLocation::*;
2use crate::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 #[cfg(feature = "non-exhaustive-enums")]
28 _ => unimplemented!(),
29 }
30 }
31}
32
33impl From<Location> for AVChromaLocation {
34 fn from(value: Location) -> AVChromaLocation {
35 match value {
36 Location::Unspecified => AVCHROMA_LOC_UNSPECIFIED,
37 Location::Left => AVCHROMA_LOC_LEFT,
38 Location::Center => AVCHROMA_LOC_CENTER,
39 Location::TopLeft => AVCHROMA_LOC_TOPLEFT,
40 Location::Top => AVCHROMA_LOC_TOP,
41 Location::BottomLeft => AVCHROMA_LOC_BOTTOMLEFT,
42 Location::Bottom => AVCHROMA_LOC_BOTTOM,
43 }
44 }
45}