X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-registry%2Fsrc%2Fregister.rs;h=628cc6b87af5271f99b5b76d5e4c0f6a104ce0ed;hb=31cf33aceca7798294e1ce5c01702ef5e6ef7adc;hp=5821ced537a6f58587cd22bba3267c9147e8be7b;hpb=6b2cdc8411a36d7d67863067d7743d3e1d061d43;p=nihav.git diff --git a/nihav-registry/src/register.rs b/nihav-registry/src/register.rs index 5821ced..628cc6b 100644 --- a/nihav-registry/src/register.rs +++ b/nihav-registry/src/register.rs @@ -207,6 +207,16 @@ static CODEC_REGISTER: &'static [CodecDescription] = &[ desc!(video; "bink2-video", "Bink2 video"), desc!(audio; "bink-audio-dct", "Bink audio (DCT)"), desc!(audio; "bink-audio-rdft", "Bink audio (RDFT)"), + + desc!(audio; "lhst15f8", "L&H StreamTalk 15kbps at 8 kHz"), + 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)] = &[ @@ -252,6 +262,50 @@ static WAV_CODEC_REGISTER: &'static [(u16, &str)] = &[ (0x0501, "on2avc-501"), ]; +static MOV_VIDEO_CODEC_REGISTER: &'static [(&[u8;4], &str)] = &[ + (b"cvid", "cinepak"), + (b"jpeg", "jpeg"), + //(b"raw ", "raw"), + //(b"Yuv2", "raw"), + (b"smc ", "qt-smc"), + (b"rle ", "qt-rle"), + (b"rpza", "apple-video"), + (b"kpcd", "kodak-photocd"), + //(b"mpeg", "mpeg-video"), + (b"mjpa", "mjpeg-a"), + (b"mjpb", "mjpeg-b"), + (b"svqi", "sorenson-video"), + + (b"IV31", "indeo3"), + (b"IV32", "indeo3"), + + (b"UCOD", "clearvideo"), + + (b"VP30", "vp3"), + (b"VP31", "vp3"), +]; + +static MOV_AUDIO_CODEC_REGISTER: &'static [(&[u8;4], &str)] = &[ + (b"NONE", "pcm"), + (b"raw ", "pcm"), + (b"twos", "pcm"), + (b"sowt", "pcm"), + (b"fl32", "pcm"), + (b"fl64", "pcm"), + (b"in24", "pcm"), + (b"in32", "pcm"), + (b"MAC3", "mace-3"), + (b"MAC6", "mace-6"), + (b"ima4", "ima-adpcm-qt"), + (b"ulaw", "ulaw"), + (b"alaw", "alaw"), + (b"dvca", "dv-audio"), + (b"QDMC", "qdesign-music"), + (b"QDM2", "qdesign-music2"), + (b"Qclp", "qualcomm-purevoice"), + //(b".mp3", "mpeg-layer3"), +]; + /// Returns video codec short name for provided FOURCC (used in AVI format). pub fn find_codec_from_avi_fourcc(fcc: &[u8;4]) -> Option<&'static str> { for (fourcc, name) in AVI_VIDEO_CODEC_REGISTER.iter() { @@ -268,6 +322,22 @@ pub fn find_codec_from_wav_twocc(tcc: u16) -> Option<&'static str> { 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() { + if *fourcc == fcc { return Some(name); } + } + None +} + +/// Returns known audio codec short name for provided FOURCC (used in MOV format). +pub fn find_codec_from_mov_audio_fourcc(fcc: &[u8;4]) -> Option<&'static str> { + for (fourcc, name) in MOV_AUDIO_CODEC_REGISTER.iter() { + if *fourcc == fcc { return Some(name); } + } + None +} + #[cfg(test)] mod test { use super::*;