From f4259a31b8f7f22e9db5d4d5408ed74ca355cdd0 Mon Sep 17 00:00:00 2001 From: Gabriel Vasile Date: Thu, 18 Nov 2021 20:20:41 +0200 Subject: [PATCH] Add support for AVIF still and animated --- internal/magic/ftyp.go | 4 ++++ mimetype_test.go | 2 ++ supported_mimes.md | 3 ++- testdata/avif.avif | Bin 0 -> 5271 bytes testdata/avifsequence.avif | Bin 0 -> 42546 bytes tree.go | 3 ++- 6 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 testdata/avif.avif create mode 100644 testdata/avifsequence.avif diff --git a/internal/magic/ftyp.go b/internal/magic/ftyp.go index a23d2b76..27a60e10 100644 --- a/internal/magic/ftyp.go +++ b/internal/magic/ftyp.go @@ -1,6 +1,10 @@ package magic var ( + // AVIF matches an AV1 Image File Format still or animated. + // Wikipedia page seems outdated listing image/avif-sequence for animations. + // https://github.com/AOMediaCodec/av1-avif/issues/59 + AVIF = ftyp([]byte("avif"), []byte("avis")) // Mp4 matches an MP4 file. Mp4 = ftyp( []byte("avc1"), []byte("dash"), []byte("iso2"), []byte("iso3"), diff --git a/mimetype_test.go b/mimetype_test.go index 1e33ccde..76021cd8 100644 --- a/mimetype_test.go +++ b/mimetype_test.go @@ -34,6 +34,8 @@ var files = map[string]string{ "atom.atom": "application/atom+xml", "au.au": "audio/basic", "avi.avi": "video/x-msvideo", + "avif.avif": "image/avif", + "avifsequence.avif": "image/avif", "bmp.bmp": "image/bmp", "bpg.bpg": "image/bpg", "bz2.bz2": "application/x-bzip2", diff --git a/supported_mimes.md b/supported_mimes.md index f67f475b..926e9a3e 100644 --- a/supported_mimes.md +++ b/supported_mimes.md @@ -1,4 +1,4 @@ -## 165 Supported MIME types +## 166 Supported MIME types This file is automatically generated when running tests. Do not edit manually. Extension | MIME type | Aliases @@ -135,6 +135,7 @@ Extension | MIME type | Aliases **.pat** | image/x-gimp-pat | - **.gbr** | image/x-gimp-gbr | - **.glb** | model/gltf-binary | - +**.avif** | image/avif | - **.txt** | text/plain | - **.html** | text/html | - **.svg** | image/svg+xml | - diff --git a/testdata/avif.avif b/testdata/avif.avif new file mode 100644 index 0000000000000000000000000000000000000000..6e4f3433da87664a0cb444d9e57eb4df035124f6 GIT binary patch literal 5271 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 N?zFzcgL+U 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 z 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 GVne`@CExD= literal 0 HcmV?d00001 diff --git a/tree.go b/tree.go index e5466f13..7d1dbf5f 100644 --- a/tree.go +++ b/tree.go @@ -24,7 +24,7 @@ var root = newMIME("application/octet-stream", "", gzip, class, swf, crx, ttf, woff, woff2, otf, eot, wasm, shx, dbf, dcm, rar, djvu, mobi, lit, bpg, sqlite3, dwg, nes, lnk, macho, qcp, icns, heic, heicSeq, heif, heifSeq, hdr, mrc, mdb, accdb, zstd, cab, rpm, xz, lzip, - torrent, cpio, tzif, xcf, pat, gbr, glb, + torrent, cpio, tzif, xcf, pat, gbr, glb, avif, // Keep text last because it is the slowest check text, ) @@ -133,6 +133,7 @@ var ( heif = newMIME("image/heif", ".heif", magic.Heif) heifSeq = newMIME("image/heif-sequence", ".heif", magic.HeifSequence) hdr = newMIME("image/vnd.radiance", ".hdr", magic.Hdr) + avif = newMIME("image/avif", ".avif", magic.AVIF) mp3 = newMIME("audio/mpeg", ".mp3", magic.Mp3). alias("audio/x-mpeg", "audio/mp3") flac = newMIME("audio/flac", ".flac", magic.Flac)