use std::fmt;
-#[derive(Debug,Clone,Copy)]
+#[derive(Debug,Clone,Copy,PartialEq)]
#[allow(dead_code)]
pub enum CodecType {
Video,
const CODEC_CAP_HYBRID:u32 = 0x000008;
const CODEC_CAP_SCALABLE:u32 = 0x000010;
+#[derive(Clone)]
pub struct CodecDescription {
name: &'static str,
fname: &'static str,
}
pub fn get_codec_description(name: &str) -> Option<&'static CodecDescription> {
- for i in 0..CODEC_REGISTER.len() {
- if CODEC_REGISTER[i].name == name {
- return Some(&CODEC_REGISTER[i]);
+ for reg in CODEC_REGISTER {
+ if reg.name == name {
+ return Some(reg);
}
}
None
}
static CODEC_REGISTER: &'static [CodecDescription] = &[
- desc!(video-im; "video-indeo1", "Intel Raw IF09"),
- desc!(video-im; "video-indeo2", "Intel Indeo 2"),
- desc!(video; "video-indeo3", "Intel Indeo 3"),
- desc!(video; "video-indeo4", "Intel Indeo 4", CODEC_CAP_REORDER | CODEC_CAP_SCALABLE),
- desc!(video; "video-indeo5", "Intel Indeo 5", CODEC_CAP_REORDER | CODEC_CAP_SCALABLE),
- desc!(audio; "audio-iac", "Intel Indeo audio"),
- desc!(audio; "audio-imc", "Intel Music Coder"),
+ desc!(video-im; "indeo1", "Intel Raw IF09"),
+ desc!(video-im; "indeo2", "Intel Indeo 2"),
+ desc!(video; "indeo3", "Intel Indeo 3"),
+ desc!(video; "indeo4", "Intel Indeo 4", CODEC_CAP_REORDER | CODEC_CAP_SCALABLE),
+ desc!(video; "indeo5", "Intel Indeo 5", CODEC_CAP_REORDER | CODEC_CAP_SCALABLE),
+ desc!(video; "intel263", "Intel I263", CODEC_CAP_REORDER),
+ desc!(audio; "iac", "Intel Indeo audio"),
+ desc!(audio; "imc", "Intel Music Coder"),
];
static AVI_VIDEO_CODEC_REGISTER: &'static [(&[u8;4], &str)] = &[
- (b"IF09", "video-indeo1"),
- (b"RT21", "video-indeo2"),
- (b"IV31", "video-indeo3"),
- (b"IV32", "video-indeo3"),
- (b"IV41", "video-indeo4"),
- (b"IV50", "video-indeo5"),
+ (b"IF09", "indeo1"),
+ (b"RT21", "indeo2"),
+ (b"IV31", "indeo3"),
+ (b"IV32", "indeo3"),
+ (b"IV41", "indeo4"),
+ (b"IV50", "indeo5"),
+ (b"I263", "intel263"),
];
static WAV_CODEC_REGISTER: &'static [(u16, &str)] = &[
- (0x0000, "audio-pcm"),
- (0x0401, "audio-imc"),
- (0x0402, "audio-iac"),
+ (0x0000, "pcm"),
+ (0x0001, "pcm"),
+ (0x0003, "pcm"),
+ (0x0401, "imc"),
+ (0x0402, "iac"),
];
pub fn find_codec_from_avi_fourcc(fcc: &[u8;4]) -> Option<&'static str> {
let cd2 = get_codec_description(c2).unwrap();
println!("got {} and {}", cd1, cd2);
}
-}
\ No newline at end of file
+}