open-standards/wai/identify-conformance/ext
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science 2fd26925d3 wai identify: what any file is, from its bytes alone
`wai inspect` reads envelopes; most files a toolchain meets are not envelopes, and the
first question about one is what it is. `wai identify <file>` (operation media.inspect,
extensions/media-identify.md) answers it for any file:

- the formats the bytes fit, each with the offsets of the bytes that say so, how far its
  structure was followed and where and why that stopped;
- a container's tracks as it states them: codec, size, channels, rate, protection;
- the registered capabilities they map to, and what a format probe reads of them;
- signatures found inside the file;
- where no format is recognised, measures that still hold: how the byte values are
  spread, uniform windows, and the lags at which the bytes repeat.

The verdict is identified, ambiguous, signature_only or unknown, and there is no
confidence figure: a candidate's strength says what was checked. Nothing is decoded, no
protected track is opened, and unknown stays unknown. Walks cover ISO media, Matroska,
transport streams, Ogg, FLAC, RIFF, MPEG audio, ADTS, PNG, JPEG, GIF, IVF, YUV4MPEG2,
FLV, AV1 OBU and Annex B streams, and HLS and DASH text; 35 more formats are known by
their signature. Every walk is bounded, reads a file where its lengths lead (a large file
is never held whole), and has been given hostile bytes; it builds for wasm32.

The agent door has it as media_inspect, its results marked untrusted_content: a file's
author chooses the strings in it.

identify-conformance/ holds files written by real muxers and encoders from test patterns
and tones, what an independent media prober reads of them (prober.json), and generated
cases sitting on each rule's edge. identify_verify.py is a second implementation written
from the text; it reads the extension's tables, gives every file its whole result, and
holds ext/ to the prober's reading. tests/identify.rs holds the reference's tables to
the extension's.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-04 05:20:15 -05:00
..
a.aac wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
a.aiff wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
a.caf wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
a.flac wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
a.mp3 wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
a.wav wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
a.wav.gz wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
a.wav.zst wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
av1.ivf wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
av1.mp4 wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
av1.obu wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
avc-aac.flv wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
avc-aac.mp4 wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
avc-aac.ts wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
avc-protected.mp4 wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
avc.h264 wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
avc.m2ts wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
container.jxl wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
flac.mp4 wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
hevc-flac.mkv wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
hevc-fragmented.mp4 wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
hevc-hvc1.mp4 wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
hevc.h265 wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
hevc.ts wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
id3.mp3 wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
lossless.webp wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
lossy.webp wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
manifest.mpd wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
media.m3u8 wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
mpeg2.m2v wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
mpeg2.mpg wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
opus.m4a wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
opus.ogg wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
p.avif wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
p.gif wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
p.j2k wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
p.jp2 wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
p.jpg wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
p.jxl wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
p.png wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
p.tif wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
t.vtt wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
v.y4m wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
vorbis.ogg wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
vp9-opus.webm wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
vp9.ivf wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00
vp9.mp4 wai identify: what any file is, from its bytes alone 2026-11-04 05:20:15 -05:00