ffmpeg_the_third/codec/
discard.rs

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