Skip to main content

ffmpeg_next/codec/
discard.rs

1use crate::ffi::AVDiscard::*;
2use crate::ffi::*;
3
4#[derive(Eq, PartialEq, Clone, Copy, Debug)]
5pub enum Discard {
6    None,
7    Default,
8    NonReference,
9    Bidirectional,
10    NonIntra,
11    NonKey,
12    All,
13}
14
15impl From<AVDiscard> for Discard {
16    fn from(value: AVDiscard) -> Self {
17        match value {
18            AVDISCARD_NONE => Discard::None,
19            AVDISCARD_DEFAULT => Discard::Default,
20            AVDISCARD_NONREF => Discard::NonReference,
21            AVDISCARD_BIDIR => Discard::Bidirectional,
22            AVDISCARD_NONINTRA => Discard::NonIntra,
23            AVDISCARD_NONKEY => Discard::NonKey,
24            AVDISCARD_ALL => Discard::All,
25
26            #[cfg(feature = "non-exhaustive-enums")]
27            _ => unimplemented!(),
28        }
29    }
30}
31
32impl From<Discard> for AVDiscard {
33    fn from(value: Discard) -> AVDiscard {
34        match value {
35            Discard::None => AVDISCARD_NONE,
36            Discard::Default => AVDISCARD_DEFAULT,
37            Discard::NonReference => AVDISCARD_NONREF,
38            Discard::Bidirectional => AVDISCARD_BIDIR,
39            Discard::NonIntra => AVDISCARD_NONINTRA,
40            Discard::NonKey => AVDISCARD_NONKEY,
41            Discard::All => AVDISCARD_ALL,
42        }
43    }
44}