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