ref: 25c260fde5a5ee9ca01bd805e88e89f0f508f803
dir: /file-opus/
diff -r 19baa5600a90 sys/src/cmd/file.c --- a/sys/src/cmd/file.c Mon Apr 06 01:31:35 2020 +0200 +++ b/sys/src/cmd/file.c Mon Apr 06 04:34:43 2020 +0200 @@ -153,6 +153,8 @@ int istga(void); int ismp3(void); int ismp4(void); +int isoggvorbis(void); +int isoggopus(void); int ismung(void); int isp9bit(void); int isp9font(void); @@ -201,6 +203,8 @@ isicocur, /* windows icon or cursor file */ isface, /* ascii face file */ istga, + isoggvorbis, + isoggopus, ismp4, ismp3, @@ -838,7 +842,6 @@ "\033%-12345X", "HPJCL file", 9, "application/hpjcl", "\033Lua", "Lua bytecode", 4, OCTET, "ID3", "mp3 audio with id3", 3, "audio/mpeg", - "OggS", "ogg audio", 4, "audio/ogg", ".snd", "sun audio", 4, "audio/basic", "\211PNG", "PNG image", 4, "image/png", "P1\n", "ppm", 3, "image/ppm", @@ -1262,6 +1265,28 @@ return 0; } +int +isoggvorbis(void) +{ + if(memcmp(&buf[0], "OggS", 4) != 0) + return 0; + if(memcmp(&buf[29], "vorbis", 6) != 0) + return 0; + print("%s\n", mime ? "audio/ogg;codecs=vorbis" : "ogg audio"); + return 1; +} + +int +isoggopus(void) +{ + if(memcmp(&buf[0], "OggS", 4) != 0) + return 0; + if(memcmp(&buf[28], "OpusHead", 8) != 0) + return 0; + print("%s\n", mime ? "audio/ogg;codecs=opus" : "ogg audio"); + return 1; +} + /* * low entropy means encrypted */