registry: add detect_format_by_name()
authorKostya Shishkov <kostya.shishkov@gmail.com>
Thu, 4 Jun 2020 16:29:09 +0000 (18:29 +0200)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Thu, 4 Jun 2020 16:29:09 +0000 (18:29 +0200)
nihav-registry/src/detect.rs

index 2621000eb889edbd45e536f7b5613175bf313269..92bb920e0e36555840d067f7c20a22242b2a62dc 100644 (file)
@@ -332,6 +332,22 @@ pub fn detect_format(name: &str, src: &mut ByteReader) -> Option<(&'static str,
     result
 }
 
+/// Tries to detect container format for provided file name.
+pub fn detect_format_by_name(name: &str) -> Option<(&'static str)> {
+    if name.is_empty() {
+        return None;
+    }
+    let lname = name.to_lowercase();
+    for detector in DETECTORS {
+        for ext in detector.extensions.split(',') {
+            if lname.ends_with(ext) {
+                return Some(detector.demux_name);
+            }
+        }
+    }
+    None
+}
+
 #[cfg(test)]
 mod test {
     use super::*;