diff --git a/src/codec/discard.rs b/src/codec/discard.rs new file mode 100644 index 0000000..c8bbbd4 --- /dev/null +++ b/src/codec/discard.rs @@ -0,0 +1,40 @@ +use ffi::*; + +#[derive(Eq, PartialEq, Clone, Copy, Debug)] +pub enum Discard { + None, + Default, + NonReference, + Bidirectional, + NonIntra, + NonKey, + All, +} + +impl From for Discard { + fn from(value: AVDiscard) -> Self { + match value { + AVDISCARD_NONE => Discard::None, + AVDISCARD_DEFAULT => Discard::Default, + AVDISCARD_NONREF => Discard::NonReference, + AVDISCARD_BIDIR => Discard::Bidirectional, + AVDISCARD_NONINTRA => Discard::NonIntra, + AVDISCARD_NONKEY => Discard::NonKey, + AVDISCARD_ALL => Discard::All + } + } +} + +impl Into for Discard { + fn into(self) -> AVDiscard { + match self { + Discard::None => AVDISCARD_NONE, + Discard::Default => AVDISCARD_DEFAULT, + Discard::NonReference => AVDISCARD_NONREF, + Discard::Bidirectional => AVDISCARD_BIDIR, + Discard::NonIntra => AVDISCARD_NONINTRA, + Discard::NonKey => AVDISCARD_NONKEY, + Discard::All => AVDISCARD_ALL + } + } +} diff --git a/src/codec/mod.rs b/src/codec/mod.rs index f42317e..85b1c91 100644 --- a/src/codec/mod.rs +++ b/src/codec/mod.rs @@ -5,6 +5,8 @@ pub mod packet; pub mod subtitle; +pub mod discard; + use std::ffi::CStr; use std::str::from_utf8_unchecked; diff --git a/src/lib.rs b/src/lib.rs index 5d34474..fa2f7d8 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -17,3 +17,4 @@ pub use util::frame::{self, Frame}; pub mod codec; pub use codec::packet::{self, Packet}; pub use codec::subtitle::Subtitle; +pub use codec::discard::Discard;