diff --git a/src/codec/field_order.rs b/src/codec/field_order.rs new file mode 100644 index 0000000..84e66a7 --- /dev/null +++ b/src/codec/field_order.rs @@ -0,0 +1,37 @@ +use ffi::*; + +#[derive(Eq, PartialEq, Clone, Copy, Debug)] +pub enum FieldOrder { + Unknown, + Progressive, + TT, + BB, + TB, + BT, +} + +impl From for FieldOrder { + fn from(value: AVFieldOrder) -> Self { + match value { + AV_FIELD_UNKNOWN => FieldOrder::Unknown, + AV_FIELD_PROGRESSIVE => FieldOrder::Progressive, + AV_FIELD_TT => FieldOrder::TT, + AV_FIELD_BB => FieldOrder::BB, + AV_FIELD_TB => FieldOrder::TB, + AV_FIELD_BT => FieldOrder::BT + } + } +} + +impl Into for FieldOrder { + fn into(self) -> AVFieldOrder { + match self { + FieldOrder::Unknown => AV_FIELD_UNKNOWN, + FieldOrder::Progressive => AV_FIELD_PROGRESSIVE, + FieldOrder::TT => AV_FIELD_TT, + FieldOrder::BB => AV_FIELD_BB, + FieldOrder::TB => AV_FIELD_TB, + FieldOrder::BT => AV_FIELD_BT + } + } +} diff --git a/src/codec/mod.rs b/src/codec/mod.rs index c49cfbf..eb9c1a8 100644 --- a/src/codec/mod.rs +++ b/src/codec/mod.rs @@ -14,6 +14,7 @@ pub use self::context::Context; pub mod codec; +pub mod field_order; pub mod audio_service; pub mod encoder; diff --git a/src/lib.rs b/src/lib.rs index 0190913..def6a28 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -35,6 +35,8 @@ pub use codec::discard::Discard; #[cfg(feature = "codec")] pub use codec::codec::Codec; #[cfg(feature = "codec")] +pub use codec::field_order::FieldOrder; +#[cfg(feature = "codec")] pub use codec::audio_service::AudioService; #[cfg(feature = "device")]