add Arxel Tribe video support
[nihav.git] / nihav-registry / src / detect.rs
index 67fba7023b57cc543d71d2ae2d9971ab5748ec97..bfe1d44a301656edf49b7d977996d581c2107517 100644 (file)
@@ -241,12 +241,23 @@ const DETECTORS: &[DetectConditions] = &[
         conditions: &[CheckItem{offs: 0, cond: &CC::Str(b"FLV") },
                       CheckItem{offs: 3, cond: &CC::Le(Arg::Byte(1)) }],
     },
+    DetectConditions {
+        demux_name: "ivf",
+        extensions: ".ivf",
+        conditions: &[CheckItem{offs: 0, cond: &CC::Str(&[0x50, 0xEF, 0x81, 0x19, 0xB3, 0xBD, 0xD0, 0x11, 0xA3, 0xE5, 0x00, 0xA0, 0xC9, 0x24, 0x44])},
+                      CheckItem{offs: 15, cond: &CC::Or(&CC::Eq(Arg::Byte(0x36)), &CC::Eq(Arg::Byte(0x37)))}],
+    },
     DetectConditions {
         demux_name: "dkivf",
         extensions: ".ivf",
         conditions: &[CheckItem{offs: 0, cond: &CC::Str(b"DKIF\x00\x00")},
                       CheckItem{offs: 6, cond: &CC::Ge(Arg::U16LE(32))}],
     },
+    DetectConditions {
+        demux_name: "arxel-cnm",
+        extensions: ".cnm",
+        conditions: &[CheckItem{offs: 0, cond: &CC::Str(b"CNM UNR\x00")}],
+    },
     DetectConditions {
         demux_name: "fcmp",
         extensions: ".cmp",
@@ -268,12 +279,28 @@ const DETECTORS: &[DetectConditions] = &[
         conditions: &[CheckItem{offs:  0, cond: &CC::Str(b"IMAX") },
                       CheckItem{offs: 10, cond: &CC::Eq(Arg::U16LE(0x102)) }],
     },
+    DetectConditions {
+        demux_name: "hl-fmv",
+        extensions: ".fmv",
+        conditions: &[CheckItem{offs:  0, cond: &CC::Str(b"FMV*") },
+                      CheckItem{offs:  4, cond: &CC::Eq(Arg::U32LE(0)) }],
+    },
     DetectConditions {
         demux_name: "legend-q",
         extensions: ".q",
         conditions: &[CheckItem{offs: 0, cond: &CC::Eq(Arg::U16LE(0x6839))},
                       CheckItem{offs: 2, cond: &CC::In(Arg::Byte(3), Arg::Byte(7))}],
     },
+    DetectConditions {
+        demux_name: "siff",
+        extensions: ".vb,.vbc,.fcp,.son",
+        conditions: &[CheckItem{offs: 0, cond: &CC::Str(b"SIFF")},
+                      CheckItem{offs: 4, cond: &CC::Or(
+                                    &CC::Or(
+                                        &CC::Str(b"VBV1VBHD"),
+                                        &CC::Str(b"SOUNSHDR")),
+                                    &CC::Str(b"FCPKFCHD"))}],
+    },
     DetectConditions {
         demux_name: "smush",
         extensions: ".san",