]> git.nihav.org Git - nihav.git/blobdiff - nihav-registry/src/detect.rs
avimux: do not record palette change chunks in OpenDML index
[nihav.git] / nihav-registry / src / detect.rs
index 6603c0db243eeb7a9262465d0c610129f8f1b7f1..de78c0d17f16d130e137c4b81e506b59e91e3350 100644 (file)
@@ -222,6 +222,12 @@ const DETECTORS: &[DetectConditions] = &[
                                                                &CC::Str(b"moov")),
                                                                &CC::Str(b"ftyp")) }],
     },
+    DetectConditions {
+        demux_name: "gif",
+        extensions: ".gif",
+        conditions: &[CheckItem{offs: 0, cond: &CC::Or(&CC::Str(b"GIF87a"),
+                                                       &CC::Str(b"GIF89a")) }],
+    },
     DetectConditions {
         demux_name: "mov",
         extensions: ".mov",
@@ -239,17 +245,40 @@ const DETECTORS: &[DetectConditions] = &[
                       CheckItem{offs: 0x7B, cond: &CC::Eq(Arg::Byte(0x81))},
                       CheckItem{offs: 0x84, cond: &CC::Str(b"mdat")}],
     },
+    DetectConditions {
+        demux_name: "mov-resfork",
+        extensions: ".mov",
+        conditions: &[CheckItem{offs: 0, cond: &CC::Eq(Arg::U32BE(0x100))},
+                      CheckItem{offs: 0x108, cond: &CC::Str(b"moov")}],
+    },
     DetectConditions {
         demux_name: "yuv4mpeg",
         extensions: ".y4m",
         conditions: &[CheckItem{offs: 0, cond: &CC::Str(b"YUV4MPEG2 ") }],
     },
+    DetectConditions {
+        demux_name: "armovie",
+        extensions: ".rpl",
+        conditions: &[CheckItem{offs:  0, cond: &CC::Str(b"ARMovie\n") }],
+    },
+    DetectConditions {
+        demux_name: "tca",
+        extensions: ".tca",
+        conditions: &[CheckItem{offs: 0x00, cond: &CC::Str(b"ACEF") },
+                      CheckItem{offs: 0x18, cond: &CC::Eq(Arg::U32LE(64))}],
+    },
     DetectConditions {
         demux_name: "flv",
         extensions: ".flv",
         conditions: &[CheckItem{offs: 0, cond: &CC::Str(b"FLV") },
                       CheckItem{offs: 3, cond: &CC::Le(Arg::Byte(1)) }],
     },
+    DetectConditions {
+        demux_name: "dvi",
+        extensions: ".avs,.dvi",
+        conditions: &[CheckItem{offs: 0, cond: &CC::Str(b"IVDV")},
+                      CheckItem{offs: 12, cond: &CC::Str(b"SSVA")}],
+    },
     DetectConditions {
         demux_name: "ivf",
         extensions: ".ivf",
@@ -262,54 +291,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",
-        conditions: &[CheckItem{offs: 0, cond: &CC::Str(b"FCMP")}],
-    },
-    DetectConditions {
-        demux_name: "fst",
-        extensions: ".fst",
-        conditions: &[CheckItem{offs: 0, cond: &CC::Str(b"2TSF")}],
-    },
     DetectConditions {
         demux_name: "gdv",
         extensions: ".gdv",
         conditions: &[CheckItem{offs: 0, cond: &CC::Eq(Arg::U32LE(0x29111994))}],
     },
-    DetectConditions {
-        demux_name: "fable-imax",
-        extensions: ".imx",
-        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",
@@ -329,6 +315,16 @@ const DETECTORS: &[DetectConditions] = &[
         conditions: &[CheckItem{offs: 0, cond: &CC::Str(b"SANM")},
                       CheckItem{offs: 8, cond: &CC::Str(b"SHDR")}],
     },
+    DetectConditions {
+        demux_name: "qpeg",
+        extensions: ".dvc",
+        conditions: &[CheckItem{offs: 0, cond: &CC::Str(b"IDVCd")}],
+    },
+    DetectConditions {
+        demux_name: "tealmov",
+        extensions: ".pdb",
+        conditions: &[CheckItem{offs: 0x3C, cond: &CC::Str(b"MvieTlMv")}],
+    },
     DetectConditions {
         demux_name: "realaudio",
         extensions: ".ra,.ram",
@@ -409,14 +405,14 @@ const DETECTORS: &[DetectConditions] = &[
         conditions: &[],
     },
     DetectConditions {
-        demux_name: "vmd",
-        extensions: ".vmd",
+        demux_name: "sierra-seq",
+        extensions: ".seq",
         conditions: &[],
     },
     DetectConditions {
-        demux_name: "vx",
-        extensions: ".vx",
-        conditions: &[CheckItem{offs: 0, cond: &CC::Str(b"VXDS") }],
+        demux_name: "vmd",
+        extensions: ".vmd",
+        conditions: &[],
     },
 ];