util/media: add media::Type

This commit is contained in:
meh 2015-05-12 03:21:32 +02:00
parent 8d828575df
commit 7cd4a3d531
3 changed files with 40 additions and 0 deletions

View File

@ -11,3 +11,4 @@ pub use util::dictionary::Dictionary;
pub use util::rational::Rational; pub use util::rational::Rational;
pub use util::color_space::ColorSpace; pub use util::color_space::ColorSpace;
pub use util::color_range::ColorRange; pub use util::color_range::ColorRange;
pub use util::media;

38
src/util/media.rs Normal file
View File

@ -0,0 +1,38 @@
use ffi::*;
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
pub enum Type {
Unknown,
Video,
Audio,
Data,
Subtitle,
Attachment,
}
impl From<AVMediaType> for Type {
fn from(value: AVMediaType) -> Self {
match value {
AVMEDIA_TYPE_UNKNOWN => Type::Unknown,
AVMEDIA_TYPE_VIDEO => Type::Video,
AVMEDIA_TYPE_AUDIO => Type::Audio,
AVMEDIA_TYPE_DATA => Type::Data,
AVMEDIA_TYPE_SUBTITLE => Type::Subtitle,
AVMEDIA_TYPE_ATTACHMENT => Type::Attachment,
AVMEDIA_TYPE_NB => Type::Unknown,
}
}
}
impl Into<AVMediaType> for Type {
fn into(self) -> AVMediaType {
match self {
Type::Unknown => AVMEDIA_TYPE_UNKNOWN,
Type::Video => AVMEDIA_TYPE_VIDEO,
Type::Audio => AVMEDIA_TYPE_AUDIO,
Type::Data => AVMEDIA_TYPE_DATA,
Type::Subtitle => AVMEDIA_TYPE_SUBTITLE,
Type::Attachment => AVMEDIA_TYPE_ATTACHMENT,
}
}
}

View File

@ -1,6 +1,7 @@
pub mod dictionary; pub mod dictionary;
pub mod error; pub mod error;
pub mod rational; pub mod rational;
pub mod media;
pub mod color_space; pub mod color_space;
pub mod color_range; pub mod color_range;