ref: 6a44dcea2cfd720f5a772e4971d8fc832f22043f
dir: /file-opus/
diff -r d6c26034ff13 sys/src/cmd/file.c --- a/sys/src/cmd/file.c Sun Jan 12 00:19:39 2020 +0100 +++ b/sys/src/cmd/file.c Sun Jan 12 17:12:40 2020 +0100 @@ -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); @@ -203,6 +205,8 @@ istga, ismp3, ismp4, + isoggvorbis, + isoggopus, /* last resorts */ ismung, /* entropy compressed/encrypted */ @@ -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 */