Fable IMAX video support
[nihav.git] / nihav-registry / src / register.rs
index 0accdd4e6263307ab0986bf4a452381d0e22421c..75a13d91e9424896e21fa590f417a302c14b6b7f 100644 (file)
@@ -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)]
@@ -137,6 +139,10 @@ macro_rules! desc {
         CodecDescription{ name: $n, fname: $fn, ctype: CodecType::Audio,
                           caps: CODEC_CAP_LOSSLESS | CODEC_CAP_INTRAONLY }
     });
+    (audio-hyb; $n:expr, $fn:expr) => ({
+        CodecDescription{ name: $n, fname: $fn, ctype: CodecType::Audio,
+                          caps: CODEC_CAP_HYBRID }
+    });
 }
 
 /// Returns codec description for the provided codec short name if it is found.
@@ -221,6 +227,9 @@ 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;    "midivid",       "MidiVid"),
     desc!(video;    "midivid3",      "MidiVid 3"),
     desc!(video-ll; "midivid-ll",    "MidiVid Lossless"),
@@ -245,6 +254,13 @@ static CODEC_REGISTER: &'static [CodecDescription] = &[
     desc!(video;    "vivo2",         "VivoActive Video 2.0", CODEC_CAP_REORDER),
     desc!(audio;    "g723.1",        "ITU G.723.1"),
     desc!(audio;    "siren",         "Polycom Siren"),
+
+    desc!(audio-ll;  "ape",          "Monkey's Audio"),
+    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)] = &[
@@ -324,6 +340,8 @@ 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)] = &[
@@ -345,6 +363,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).