desc!(audio; "atrac3", "Sony Atrac3"),
desc!(audio; "sipro", "Sipro Labs ADPCM"),
+ desc!(video; "cinepak", "Cinepak"),
+
+ desc!(video; "msvideo1", "MS Video 1"),
+ desc!(audio; "ms-adpcm", "MS ADPCM"),
+ desc!(audio; "ima-adpcm-ms", "IMA ADPCM (MS variant)"),
+
desc!(video; "truemotion1", "TrueMotion 1"),
desc!(video-im; "truemotionrt", "TrueMotion RT"),
desc!(video; "truemotion2", "TrueMotion 2"),
desc!(audio; "lhst250f11", "L&H StreamTalk 25kbps at 11 kHz"),
desc!(audio; "lhst500f22", "L&H StreamTalk 50kpbs at 22 kHz"),
desc!(audio; "lhst48", "L&H StreamTalk CELP Codec 4.8kbps at 8 kHz"),
+
+ desc!(video; "vivo1", "VivoActive Video 1.0"),
+ desc!(video; "vivo2", "VivoActive Video 2.0", CODEC_CAP_REORDER),
+ desc!(audio; "g723.1", "ITU G.723.1"),
+ desc!(audio; "siren", "Polycom Siren"),
];
static AVI_VIDEO_CODEC_REGISTER: &'static [(&[u8;4], &str)] = &[
+ (b"CRAM", "msvideo1"),
+ (b"MSVC", "msvideo1"),
+ (b"WHAM", "msvideo1"),
+
(b"IF09", "indeo1"),
(b"RT21", "indeo2"),
(b"IV31", "indeo3"),
(b"I263", "intel263"),
(b"UCOD", "clearvideo"),
+ (b"cvid", "cinepak"),
(b"MVDV", "midivid"),
(b"MV30", "midivid3"),
];
static WAV_CODEC_REGISTER: &'static [(u16, &str)] = &[
- (0x0000, "pcm"),
+ (0x0000, "unknown"),
(0x0001, "pcm"),
+ (0x0002, "ms-adpcm"),
(0x0003, "pcm"),
+ (0x0011, "ima-adpcm-ms"),
(0x0061, "adpcm-dk4"),
(0x0062, "adpcm-dk3"),
(0x0401, "imc"),
None
}
+/// Returns FOURCC (used in AVI format) for provided codec name.
+pub fn find_avi_fourcc(codecname: &str) -> Option<[u8; 4]> {
+ for (fourcc, name) in AVI_VIDEO_CODEC_REGISTER.iter() {
+ if *name == codecname { return Some(**fourcc); }
+ }
+ None
+}
+
/// Returns known audio codec short name for provided TWOCC (used in WAV and AVI format).
pub fn find_codec_from_wav_twocc(tcc: u16) -> Option<&'static str> {
for (twocc, name) in WAV_CODEC_REGISTER.iter() {
None
}
+/// Returns TWOCC (used in WAV and AVI format for provided codec name.
+pub fn find_wav_twocc(codecname: &str) -> Option<u16> {
+ for (twocc, name) in WAV_CODEC_REGISTER.iter() {
+ if *name == codecname { return Some(*twocc); }
+ }
+ None
+}
+
/// Returns video codec short name for provided FOURCC (used in MOV format).
pub fn find_codec_from_mov_video_fourcc(fcc: &[u8;4]) -> Option<&'static str> {
for (fourcc, name) in MOV_VIDEO_CODEC_REGISTER.iter() {