playa_ffmpeg/util/
media.rs

1use crate::ffi::{AVMediaType::*, *};
2
3#[derive(Eq, PartialEq, Clone, Copy, Debug)]
4pub enum Type {
5    Unknown,
6    Video,
7    Audio,
8    Data,
9    Subtitle,
10    Attachment,
11}
12
13impl From<AVMediaType> for Type {
14    #[inline(always)]
15    fn from(value: AVMediaType) -> Self {
16        match value {
17            AVMEDIA_TYPE_UNKNOWN => Type::Unknown,
18            AVMEDIA_TYPE_VIDEO => Type::Video,
19            AVMEDIA_TYPE_AUDIO => Type::Audio,
20            AVMEDIA_TYPE_DATA => Type::Data,
21            AVMEDIA_TYPE_SUBTITLE => Type::Subtitle,
22            AVMEDIA_TYPE_ATTACHMENT => Type::Attachment,
23            AVMEDIA_TYPE_NB => Type::Unknown,
24        }
25    }
26}
27
28impl From<Type> for AVMediaType {
29    #[inline(always)]
30    fn from(value: Type) -> AVMediaType {
31        match value {
32            Type::Unknown => AVMEDIA_TYPE_UNKNOWN,
33            Type::Video => AVMEDIA_TYPE_VIDEO,
34            Type::Audio => AVMEDIA_TYPE_AUDIO,
35            Type::Data => AVMEDIA_TYPE_DATA,
36            Type::Subtitle => AVMEDIA_TYPE_SUBTITLE,
37            Type::Attachment => AVMEDIA_TYPE_ATTACHMENT,
38        }
39    }
40}