Skip to main content

ffmpeg_the_third/codec/
field_order.rs

1use crate::ffi::*;
2#[cfg(feature = "serialize")]
3use serde::{Deserialize, Serialize};
4
5#[derive(Eq, PartialEq, Clone, Copy, Debug)]
6#[cfg_attr(feature = "serialize", derive(Serialize, Deserialize))]
7pub enum FieldOrder {
8    Unknown,
9    Progressive,
10    TT,
11    BB,
12    TB,
13    BT,
14}
15
16impl From<AVFieldOrder> for FieldOrder {
17    fn from(value: AVFieldOrder) -> Self {
18        use AVFieldOrder as AV;
19
20        match value {
21            AV::UNKNOWN => FieldOrder::Unknown,
22            AV::PROGRESSIVE => FieldOrder::Progressive,
23            AV::TT => FieldOrder::TT,
24            AV::BB => FieldOrder::BB,
25            AV::TB => FieldOrder::TB,
26            AV::BT => FieldOrder::BT,
27
28            _ => unimplemented!(),
29        }
30    }
31}
32
33impl From<FieldOrder> for AVFieldOrder {
34    fn from(value: FieldOrder) -> AVFieldOrder {
35        use AVFieldOrder as AV;
36
37        match value {
38            FieldOrder::Unknown => AV::UNKNOWN,
39            FieldOrder::Progressive => AV::PROGRESSIVE,
40            FieldOrder::TT => AV::TT,
41            FieldOrder::BB => AV::BB,
42            FieldOrder::TB => AV::TB,
43            FieldOrder::BT => AV::BT,
44        }
45    }
46}