]> git.lizzy.rs Git - plan9front.git/commitdiff
file: add (very) basic support for detecting mpeg4 formats
authorAlex Musolino <alex@musolino.id.au>
Fri, 1 Nov 2019 01:35:11 +0000 (12:05 +1030)
committerAlex Musolino <alex@musolino.id.au>
Fri, 1 Nov 2019 01:35:11 +0000 (12:05 +1030)
sys/src/cmd/file.c

index 854e8e07c4d6bf5e3047f147f2e1ce793d0c485c..11577b3af784b01863f87f5c97bc5728ffc57529 100644 (file)
@@ -152,6 +152,7 @@ int ismbox(void);
 int    islimbo(void);
 int    istga(void);
 int    ismp3(void);
+int    ismp4(void);
 int    ismung(void);
 int    isp9bit(void);
 int    isp9font(void);
@@ -201,6 +202,7 @@ int (*call[])(void) =
        isface,         /* ascii face file */
        istga,
        ismp3,
+       ismp4,
 
        /* last resorts */
        ismung,         /* entropy compressed/encrypted */
@@ -1242,6 +1244,24 @@ ismp3(void)
        return 0;
 }
 
+int
+ismp4(void)
+{
+       if(nbuf <= 12)
+               return 0;
+       if(memcmp(&buf[4], "ftyp", 4) != 0)
+               return 0;
+       if(memcmp(&buf[8], "isom", 4) == 0){
+               print("%s\n", mime ? "video/mp4" : "mp4 video");
+               return 1;
+       }
+       if(memcmp(&buf[8], "M4A ", 4) == 0){
+               print("%s\n", mime ? "audio/m4a" : "m4a audio");
+               return 1;
+       }
+       return 0;
+}
+
 /*
  * low entropy means encrypted
  */