X-Git-Url: https://git.nihav.org/?p=nihav.git;a=blobdiff_plain;f=nihav-registry%2Fsrc%2Fregister.rs;h=d929e28b9a7ae3a736565f93d1a18b935602aea3;hp=fdf9e83d855485c44968a1a0d1488e00dee7ebdd;hb=a715e99fd5a8b724cf31877c74bbd8191d7fd256;hpb=87927c5732b39bb23209486bed8d7bb7fc56b92e diff --git a/nihav-registry/src/register.rs b/nihav-registry/src/register.rs index fdf9e83..d929e28 100644 --- a/nihav-registry/src/register.rs +++ b/nihav-registry/src/register.rs @@ -41,6 +41,8 @@ pub const CODEC_CAP_REORDER:u32 = 0x0004; pub const CODEC_CAP_HYBRID:u32 = 0x0008; /// Codec capability flag for codecs with scalability features. pub const CODEC_CAP_SCALABLE:u32 = 0x0010; +/// Codec capability flag for codecs with complex frame reordering. +pub const CODEC_CAP_COMPLEX_REORDER:u32 = 0x0020; /// Codec description structure. #[derive(Clone)] @@ -153,7 +155,7 @@ pub fn get_codec_description(name: &str) -> Option<&'static CodecDescription> { None } -static CODEC_REGISTER: &'static [CodecDescription] = &[ +static CODEC_REGISTER: &[CodecDescription] = &[ desc!(audio-ll; "pcm", "PCM"), desc!(audio; "alaw", "A-law PCM"), desc!(audio; "ulaw", "mu-law PCM"), @@ -183,8 +185,13 @@ static CODEC_REGISTER: &'static [CodecDescription] = &[ desc!(audio; "atrac3", "Sony Atrac3"), desc!(audio; "sipro", "Sipro Labs ADPCM"), + + desc!(video-ll; "rawvideo", "Raw video data"), + desc!(video; "cinepak", "Cinepak"), + desc!(video-llp; "zmbv", "Zip Motion Blocks Video"), + desc!(video; "msvideo1", "MS Video 1"), desc!(video; "msrle", "MS RLE"), desc!(audio; "ms-adpcm", "MS ADPCM"), @@ -225,6 +232,10 @@ static CODEC_REGISTER: &'static [CodecDescription] = &[ desc!(audio; "bmv-audio", "BMV audio"), desc!(video; "bmv3-video", "DW Noir BMV video"), desc!(audio; "bmv3-audio", "DW Noir BMV audio"), + desc!(video; "fable-imax", "Fable IMAX video"), + desc!(video; "fst-video", "FutureVision video"), + desc!(audio; "fst-audio", "FutureVision audio"), + desc!(video; "legend-q-video", "Legend Entertainment Q video"), desc!(video; "midivid", "MidiVid"), desc!(video; "midivid3", "MidiVid 3"), desc!(video-ll; "midivid-ll", "MidiVid Lossless"), @@ -254,9 +265,11 @@ static CODEC_REGISTER: &'static [CodecDescription] = &[ desc!(audio-ll; "flac", "Free Lossless Audio Codec"), desc!(audio-ll; "tta", "True Audio codec"), desc!(audio-hyb; "wavpack", "WavPack"), + + desc!(video; "h264", "ITU H.264", CODEC_CAP_COMPLEX_REORDER | CODEC_CAP_HYBRID), ]; -static AVI_VIDEO_CODEC_REGISTER: &'static [(&[u8;4], &str)] = &[ +static AVI_VIDEO_CODEC_REGISTER: &[(&[u8;4], &str)] = &[ (&[1, 0, 0, 0], "msrle"), (&[2, 0, 0, 0], "msrle"), @@ -274,6 +287,7 @@ static AVI_VIDEO_CODEC_REGISTER: &'static [(&[u8;4], &str)] = &[ (b"UCOD", "clearvideo"), (b"cvid", "cinepak"), + (b"ZMBV", "zmbv"), (b"MVDV", "midivid"), (b"MV30", "midivid3"), @@ -295,7 +309,7 @@ static AVI_VIDEO_CODEC_REGISTER: &'static [(&[u8;4], &str)] = &[ (b"VP70", "vp7"), ]; -static WAV_CODEC_REGISTER: &'static [(u16, &str)] = &[ +static WAV_CODEC_REGISTER: &[(u16, &str)] = &[ (0x0000, "unknown"), (0x0001, "pcm"), (0x0002, "ms-adpcm"), @@ -309,7 +323,7 @@ static WAV_CODEC_REGISTER: &'static [(u16, &str)] = &[ (0x0501, "on2avc-501"), ]; -static MOV_VIDEO_CODEC_REGISTER: &'static [(&[u8;4], &str)] = &[ +static MOV_VIDEO_CODEC_REGISTER: &[(&[u8;4], &str)] = &[ (b"cvid", "cinepak"), (b"jpeg", "jpeg"), //(b"raw ", "raw"), @@ -333,9 +347,11 @@ static MOV_VIDEO_CODEC_REGISTER: &'static [(&[u8;4], &str)] = &[ (b"VP30", "vp3"), (b"VP31", "vp3"), + + (b"avc1", "h264"), ]; -static MOV_AUDIO_CODEC_REGISTER: &'static [(&[u8;4], &str)] = &[ +static MOV_AUDIO_CODEC_REGISTER: &[(&[u8;4], &str)] = &[ (b"NONE", "pcm"), (b"raw ", "pcm"), (b"twos", "pcm"), @@ -354,6 +370,8 @@ static MOV_AUDIO_CODEC_REGISTER: &'static [(&[u8;4], &str)] = &[ (b"QDM2", "qdesign-music2"), (b"Qclp", "qualcomm-purevoice"), //(b".mp3", "mpeg-layer3"), + + (b"mp4a", "aac"), ]; /// Returns video codec short name for provided FOURCC (used in AVI format).