ffmpeg_next/codec/
discard.rs1use 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}