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