diff --git a/src/codec/encoder/mod.rs b/src/codec/encoder/mod.rs index f4de7ea..16b5bcf 100644 --- a/src/codec/encoder/mod.rs +++ b/src/codec/encoder/mod.rs @@ -10,6 +10,9 @@ pub use self::subtitle::Subtitle; pub mod motion_estimation; pub use self::motion_estimation::MotionEstimation; +pub mod prediction; +pub use self::prediction::Prediction; + use std::ffi::CString; use std::ptr; use std::ops::Deref; diff --git a/src/codec/encoder/prediction.rs b/src/codec/encoder/prediction.rs new file mode 100644 index 0000000..0f895aa --- /dev/null +++ b/src/codec/encoder/prediction.rs @@ -0,0 +1,31 @@ +use libc::c_int; +use ffi::*; + +#[derive(Eq, PartialEq, Clone, Copy, Debug)] +pub enum Prediction { + Left, + Plane, + Median, +} + +impl From for Prediction { + fn from(value: c_int) -> Prediction { + match value { + FF_PRED_LEFT => Prediction::Left, + FF_PRED_PLANE => Prediction::Plane, + FF_PRED_MEDIAN => Prediction::Median, + + _ => Prediction::Left + } + } +} + +impl Into for Prediction { + fn into(self) -> c_int { + match self { + Prediction::Left => FF_PRED_LEFT, + Prediction::Plane => FF_PRED_PLANE, + Prediction::Median => FF_PRED_MEDIAN, + } + } +}