codec/compliance: add enum

This commit is contained in:
meh 2015-05-16 17:25:10 +02:00
parent 706f64c133
commit 2c3b0e2936
2 changed files with 40 additions and 0 deletions

37
src/codec/compliance.rs Normal file
View File

@ -0,0 +1,37 @@
use libc::c_int;
use ffi::*;
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
pub enum Compliance {
VeryStrict,
Strict,
Normal,
Unofficial,
Experimental,
}
impl From<c_int> for Compliance {
fn from(value: c_int) -> Self {
match value {
FF_COMPLIANCE_VERY_STRICT => Compliance::VeryStrict,
FF_COMPLIANCE_STRICT => Compliance::Strict,
FF_COMPLIANCE_NORMAL => Compliance::Normal,
FF_COMPLIANCE_UNOFFICIAL => Compliance::Unofficial,
FF_COMPLIANCE_EXPERIMENTAL => Compliance::Experimental,
_ => Compliance::Normal
}
}
}
impl Into<c_int> for Compliance {
fn into(self) -> c_int {
match self {
Compliance::VeryStrict => FF_COMPLIANCE_VERY_STRICT,
Compliance::Strict => FF_COMPLIANCE_STRICT,
Compliance::Normal => FF_COMPLIANCE_NORMAL,
Compliance::Unofficial => FF_COMPLIANCE_UNOFFICIAL,
Compliance::Experimental => FF_COMPLIANCE_EXPERIMENTAL
}
}
}

View File

@ -17,6 +17,9 @@ pub mod codec;
pub mod field_order; pub mod field_order;
pub mod audio_service; pub mod audio_service;
pub mod compliance;
pub use self::compliance::Compliance;
pub mod encoder; pub mod encoder;
pub mod decoder; pub mod decoder;