1#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
4#[repr(u32)]
5pub enum CodecId {
6 None = 0,
7
8 Mpeg1video = 1,
10 Mpeg2video = 2,
11 H261 = 3,
12 H263 = 4,
13 Rv10 = 5,
14 Rv20 = 6,
15 Mjpeg = 7,
16 Mpeg4 = 12,
17 Rawvideo = 13,
18 H264 = 27,
19 Vp8 = 139, Vp9 = 167, Hevc = 173, Av1 = 225, PcmS16le = 0x10000,
26 PcmS16be = 0x10001,
27 PcmU16le = 0x10002,
28 PcmU16be = 0x10003,
29 PcmS8 = 0x10004,
30 PcmU8 = 0x10005,
31 PcmMulaw = 0x10006,
32 PcmAlaw = 0x10007,
33 PcmS32le = 0x10008,
34 PcmS32be = 0x10009,
35 PcmU32le = 0x1000A,
36 PcmU32be = 0x1000B,
37 PcmS24le = 0x1000C,
38 PcmS24be = 0x1000D,
39 PcmU24le = 0x1000E,
40 PcmU24be = 0x1000F,
41 PcmF32be = 0x10014,
42 PcmF32le = 0x10015,
43 PcmF64be = 0x10016,
44 PcmF64le = 0x10017,
45
46 AdpcmImaWav = 0x11001,
48 AdpcmMs = 0x11006,
49
50 Mp1 = 0x1502A,
51 Mp2 = 0x15000,
52 Mp3 = 0x15001,
53 Aac = 0x15002,
54 Ac3 = 0x15003,
55 Vorbis = 0x15005,
56 Flac = 0x1500C,
57 Alac = 0x15010,
58 WavPack = 0x15019,
59 Opus = 0x1503C,
60
61 SubDvdSubtitle = 0x17000,
63 SubDvbSubtitle = 0x17001,
64 SubText = 0x17002,
65 SubXsub = 0x17003,
66 SubSsa = 0x17004,
67 SubMovText = 0x17005,
68 SubSrt = 0x17008,
69 SubWebvtt = 0x17012,
70}
71
72impl CodecId {
73 pub fn name(self) -> &'static str {
74 match self {
75 CodecId::None => "none",
76 CodecId::Mpeg1video => "mpeg1video",
77 CodecId::Mpeg2video => "mpeg2video",
78 CodecId::H261 => "h261",
79 CodecId::H263 => "h263",
80 CodecId::Rv10 => "rv10",
81 CodecId::Rv20 => "rv20",
82 CodecId::Mjpeg => "mjpeg",
83 CodecId::Mpeg4 => "mpeg4",
84 CodecId::Rawvideo => "rawvideo",
85 CodecId::H264 => "h264",
86 CodecId::Vp8 => "vp8",
87 CodecId::Vp9 => "vp9",
88 CodecId::Av1 => "av1",
89 CodecId::Hevc => "hevc",
90 CodecId::PcmS16le => "pcm_s16le",
91 CodecId::PcmS16be => "pcm_s16be",
92 CodecId::PcmU16le => "pcm_u16le",
93 CodecId::PcmU16be => "pcm_u16be",
94 CodecId::PcmS8 => "pcm_s8",
95 CodecId::PcmU8 => "pcm_u8",
96 CodecId::PcmMulaw => "pcm_mulaw",
97 CodecId::PcmAlaw => "pcm_alaw",
98 CodecId::PcmS32le => "pcm_s32le",
99 CodecId::PcmS32be => "pcm_s32be",
100 CodecId::PcmU32le => "pcm_u32le",
101 CodecId::PcmU32be => "pcm_u32be",
102 CodecId::PcmS24le => "pcm_s24le",
103 CodecId::PcmS24be => "pcm_s24be",
104 CodecId::PcmU24le => "pcm_u24le",
105 CodecId::PcmU24be => "pcm_u24be",
106 CodecId::PcmF32le => "pcm_f32le",
107 CodecId::PcmF32be => "pcm_f32be",
108 CodecId::PcmF64le => "pcm_f64le",
109 CodecId::PcmF64be => "pcm_f64be",
110 CodecId::AdpcmImaWav => "adpcm_ima_wav",
111 CodecId::AdpcmMs => "adpcm_ms",
112 CodecId::Mp1 => "mp1",
113 CodecId::Mp2 => "mp2",
114 CodecId::Mp3 => "mp3",
115 CodecId::Aac => "aac",
116 CodecId::Ac3 => "ac3",
117 CodecId::Vorbis => "vorbis",
118 CodecId::Flac => "flac",
119 CodecId::Alac => "alac",
120 CodecId::WavPack => "wavpack",
121 CodecId::Opus => "opus",
122 CodecId::SubDvdSubtitle => "dvd_subtitle",
123 CodecId::SubDvbSubtitle => "dvb_subtitle",
124 CodecId::SubText => "text",
125 CodecId::SubXsub => "xsub",
126 CodecId::SubSsa => "ssa",
127 CodecId::SubMovText => "mov_text",
128 CodecId::SubSrt => "srt",
129 CodecId::SubWebvtt => "webvtt",
130 }
131 }
132}