From 80f938cb8c51549d0ce0f7e691cc8014c4c24062 Mon Sep 17 00:00:00 2001 From: Gabriel Vasile Date: Wed, 10 Jul 2019 15:23:33 +0300 Subject: [PATCH] Add support for AAC and VOC audio formats --- internal/matchers/audio.go | 10 ++++++++++ mime_test.go | 2 ++ supported_mimes.md | 4 +++- testdata/aac.aac | Bin 0 -> 33704 bytes testdata/voc.voc | Bin 0 -> 32768 bytes tree.go | 6 ++++-- 6 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 testdata/aac.aac create mode 100644 testdata/voc.voc diff --git a/internal/matchers/audio.go b/internal/matchers/audio.go index 32f7440..b1d6736 100644 --- a/internal/matchers/audio.go +++ b/internal/matchers/audio.go @@ -57,3 +57,13 @@ func Au(in []byte) bool { func Amr(in []byte) bool { return len(in) > 5 && bytes.Equal(in[:5], []byte("\x23\x21\x41\x4D\x52")) } + +// Aac matches an Advanced Audio Coding file. +func Aac(in []byte) bool { + return bytes.HasPrefix(in, []byte{0xFF, 0xF1}) || bytes.HasPrefix(in, []byte{0xFF, 0xF9}) +} + +// Voc matches a Creative Voice file. +func Voc(in []byte) bool { + return bytes.HasPrefix(in, []byte("Creative Voice File")) +} diff --git a/mime_test.go b/mime_test.go index 2afc7fd..a01a6c7 100644 --- a/mime_test.go +++ b/mime_test.go @@ -84,6 +84,8 @@ var files = map[string]*node{ "ogg.ogg": ogg, "amr.amr": amr, "mpc.mpc": musePack, + "aac.aac": aac, + "voc.voc": voc, "m4a.m4a": m4a, "m4b.m4b": aMp4, diff --git a/supported_mimes.md b/supported_mimes.md index e6b4b3f..c10dc84 100644 --- a/supported_mimes.md +++ b/supported_mimes.md @@ -1,4 +1,4 @@ -## 110 Supported MIME types +## 112 Supported MIME types This file is automatically generated when running tests. Do not edit manually. Extension | MIME type @@ -66,6 +66,8 @@ Extension | MIME type **flv** | video/x-flv **mkv** | video/x-matroska **asf** | video/x-ms-asf +**aac** | audio/aac +**voc** | audio/x-unknown **mp4** | audio/mp4 **m4a** | audio/x-m4a **txt** | text/plain diff --git a/testdata/aac.aac b/testdata/aac.aac new file mode 100644 index 0000000000000000000000000000000000000000..0502be6c68b0a9cb0d5242d4f39c89f26d63ac98 GIT binary patch literal 33704 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 literal 0 HcmV?d00001 diff --git a/testdata/voc.voc b/testdata/voc.voc new file mode 100644 index 0000000000000000000000000000000000000000..0c02993edef8a47210e33e3ede893d5d76767e0c GIT binary patch literal 32768 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

w+Xv4RN@SA+bFKt!Yd?e3hXE&X*nN&cYfaGT zs87iQq=aG|DayL{tX*HWIu}5!cz3|4H%BPyY*%Z@XtZ_YDw5Rsajg~6Q#3ZOaP*5z6B9d8bl=ffgVX0ye5!?O`{EG-bd({d%K zB7zPV&g02sM3CD16nIvfVi)FMPNVJ9z$9TegX@op8eJJW2Borkya7xwHa6!a(+>~*LWhprtD`Js zEIjfm3CG6mXBIkgsCtuh(y6o_`9JZ3zb2_>sJP_?2=oQyIHP^QC8IG_%N)f<9u zu7`x_z(p7*O0ZQ@p(<;fb>2h44=p@tS-egRswjt{dkaHF-*|SZUV-ARS(xJR+TEb+ zGH7uZ6nC~+Y&NJ$L}hZBQn6gE7IJxTlt8 Cw1&4YWyCqr+(;XbRM%rAn^SsK8SW zjG96V<_5E##i()weR{ps?hioe$U+uoYm4nhI$e%|q&pOFfIHr%P+Fk`u-WQn4bi#9 bMYaG;E1zyOQwVpVfEj9}sAZrQrH%g|Q9RUE literal 0 HcmV?d00001 diff --git a/tree.go b/tree.go index d86e741..c623c3f 100644 --- a/tree.go +++ b/tree.go @@ -9,8 +9,8 @@ var root = newNode("application/octet-stream", "", matchers.True, sevenZ, zip, pdf, xls, ppt, doc, ps, psd, ogg, png, jpg, gif, webp, exe, elf, ar, tar, xar, bz2, fits, tiff, bmp, ico, mp3, flac, midi, ape, musePack, amr, wav, aiff, au, mpeg, quickTime, mqv, mp4, webM, threeGP, threeG2, avi, flv, - mkv, asf, aMp4, m4a, txt, gzip, class, swf, crx, woff, woff2, wasm, shx, dbf, - dcm, rar, djvu, mobi, lit, bpg, sqlite3, dwg, + mkv, asf, aac, voc, aMp4, m4a, txt, gzip, class, swf, crx, woff, woff2, wasm, + shx, dbf, dcm, rar, djvu, mobi, lit, bpg, sqlite3, dwg, ) // The list of nodes appended to the root node @@ -78,6 +78,8 @@ var ( aiff = newNode("audio/aiff", "aiff", matchers.Aiff) au = newNode("audio/basic", "au", matchers.Au) amr = newNode("audio/amr", "amr", matchers.Amr) + aac = newNode("audio/aac", "aac", matchers.Aac) + voc = newNode("audio/x-unknown", "voc", matchers.Voc) aMp4 = newNode("audio/mp4", "mp4", matchers.AMp4) m4a = newNode("audio/x-m4a", "m4a", matchers.M4a) mp4 = newNode("video/mp4", "mp4", matchers.Mp4)