X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=src%2Fregister.rs;h=a3f3e451b23adde16b30733cb3c77b32da810802;hb=34829caaa66f6842c2649fc0b4496a9d12454766;hp=76ff16f215731fcf128573feb27a16e23969279f;hpb=d48ee4147254b8019b45647d6a10d3d0c83a5fc0;p=nihav.git diff --git a/src/register.rs b/src/register.rs index 76ff16f..a3f3e45 100644 --- a/src/register.rs +++ b/src/register.rs @@ -1,6 +1,6 @@ use std::fmt; -#[derive(Debug,Clone,Copy)] +#[derive(Debug,Clone,Copy,PartialEq)] #[allow(dead_code)] pub enum CodecType { Video, @@ -28,6 +28,7 @@ const CODEC_CAP_REORDER:u32 = 0x000004; const CODEC_CAP_HYBRID:u32 = 0x000008; const CODEC_CAP_SCALABLE:u32 = 0x000010; +#[derive(Clone)] pub struct CodecDescription { name: &'static str, fname: &'static str, @@ -108,37 +109,39 @@ macro_rules! desc { } 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!(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"), ]; 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> { @@ -170,4 +173,4 @@ mod test { let cd2 = get_codec_description(c2).unwrap(); println!("got {} and {}", cd1, cd2); } -} \ No newline at end of file +}