From 4fe66b6735cf1e7353c20afa890ff91e6c99db89 Mon Sep 17 00:00:00 2001 From: meh Date: Sat, 16 May 2015 22:41:01 +0200 Subject: [PATCH] codec/encoder/decision: add enum --- src/codec/encoder/decision.rs | 31 +++++++++++++++++++++++++++++++ src/codec/encoder/mod.rs | 3 +++ 2 files changed, 34 insertions(+) create mode 100644 src/codec/encoder/decision.rs diff --git a/src/codec/encoder/decision.rs b/src/codec/encoder/decision.rs new file mode 100644 index 0000000..d4384cb --- /dev/null +++ b/src/codec/encoder/decision.rs @@ -0,0 +1,31 @@ +use libc::c_int; +use ffi::*; + +#[derive(Eq, PartialEq, Clone, Copy, Debug)] +pub enum Decision { + Simple, + Bits, + RateDistortion, +} + +impl From for Decision { + fn from(value: c_int) -> Decision { + match value { + FF_MB_DECISION_SIMPLE => Decision::Simple, + FF_MB_DECISION_BITS => Decision::Bits, + FF_MB_DECISION_RD => Decision::RateDistortion, + + _ => Decision::Simple, + } + } +} + +impl Into for Decision { + fn into(self) -> c_int { + match self { + Decision::Simple => FF_MB_DECISION_SIMPLE, + Decision::Bits => FF_MB_DECISION_BITS, + Decision::RateDistortion => FF_MB_DECISION_RD, + } + } +} diff --git a/src/codec/encoder/mod.rs b/src/codec/encoder/mod.rs index fc0e080..a08007b 100644 --- a/src/codec/encoder/mod.rs +++ b/src/codec/encoder/mod.rs @@ -16,6 +16,9 @@ pub use self::prediction::Prediction; pub mod comparison; pub use self::comparison::Comparison; +pub mod decision; +pub use self::decision::Decision; + use std::ffi::CString; use std::ptr; use std::ops::Deref;