mov: add support for MacBinary format
[nihav.git] / nihav-registry / src / detect.rs
index e73ae4b2924cf1db80877a64529594e70caaa416..bb452b2a69a8cec0fdea24f625554417ebd6a0de 100644 (file)
@@ -230,6 +230,15 @@ const DETECTORS: &[DetectConditions] = &[
                                                                 &CC::Str(b"moov")),
                                                                 &CC::Str(b"ftyp")) }],
     },
+    DetectConditions {
+        demux_name: "mov-macbin",
+        extensions: ".mov,.bin",
+        conditions: &[CheckItem{offs: 0, cond: &CC::Eq(Arg::Byte(0))},
+                      CheckItem{offs: 0x41, cond: &CC::Str(b"MooV")},
+                      CheckItem{offs: 0x7A, cond: &CC::Eq(Arg::Byte(0x81))},
+                      CheckItem{offs: 0x7B, cond: &CC::Eq(Arg::Byte(0x81))},
+                      CheckItem{offs: 0x84, cond: &CC::Str(b"mdat")}],
+    },
     DetectConditions {
         demux_name: "yuv4mpeg",
         extensions: ".y4m",
@@ -253,6 +262,11 @@ const DETECTORS: &[DetectConditions] = &[
         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",
@@ -286,6 +300,16 @@ const DETECTORS: &[DetectConditions] = &[
         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",