Skip to main content

ffmpeg_the_third/codec/
discard.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 Discard {
8    None,
9    Default,
10    NonReference,
11    Bidirectional,
12    NonIntra,
13    NonKey,
14    All,
15}
16
17impl From<AVDiscard> for Discard {
18    fn from(value: AVDiscard) -> Self {
19        use AVDiscard as AV;
20
21        match value {
22            AV::NONE => Discard::None,
23            AV::DEFAULT => Discard::Default,
24            AV::NONREF => Discard::NonReference,
25            AV::BIDIR => Discard::Bidirectional,
26            AV::NONINTRA => Discard::NonIntra,
27            AV::NONKEY => Discard::NonKey,
28            AV::ALL => Discard::All,
29
30            _ => unimplemented!(),
31        }
32    }
33}
34
35impl From<Discard> for AVDiscard {
36    fn from(value: Discard) -> AVDiscard {
37        use AVDiscard as AV;
38
39        match value {
40            Discard::None => AV::NONE,
41            Discard::Default => AV::DEFAULT,
42            Discard::NonReference => AV::NONREF,
43            Discard::Bidirectional => AV::BIDIR,
44            Discard::NonIntra => AV::NONINTRA,
45            Discard::NonKey => AV::NONKEY,
46            Discard::All => AV::ALL,
47        }
48    }
49}