// the take
dav1d is VideoLAN's AV1 decoder, written in C with hand-optimized assembly for basically every CPU architecture you'd care about. It's a decoder only, not an encoder, aimed at anyone who needs to play back AV1 video fast without dedicated hardware decode support — browsers, VLC, mobile apps.
Assembly coverage is the whole point and it delivers: AVX2/AVX-512/SSSE3 for x86, ARMv7/ARMv8 for mobile, plus RISC-V, PPC and LoongArch paths, all hand-written rather than compiler-vectorized. It implements the full AV1 feature set including every subsampling/bit-depth combo and film grain synthesis, not a subset. Correctness tooling is unusually serious for a media codec: checkasm fuzzes the asm against the C reference per-function, and there's a documented conformance run against the Argon bitstream suite (2763 files) that any change should pass. BSD 2-clause licensing is a deliberate choice to make it embeddable in closed-source and driver code, unlike VideoLAN's usual GPL defaults.
This GitHub repo is explicitly a mirror — real development happens on code.videolan.org, so issues and PRs filed here may not be where the maintainers actually look; check that before relying on GitHub for support. It's decode-only, so you still need aom or rav1e on the encode side, and GPU decoding is listed as future work, meaning you're paying full CPU cost until hardware decoders catch up. The contribution bar is intentionally narrow (pure C and asm, strict style rules), which keeps the codebase fast but means casual contributions in other languages or quick scripting wrappers aren't welcome. Less common targets like PPC, RISC-V and LoongArch are still called out as ongoing work in the roadmap, so expect rougher performance or correctness edges there compared to the well-trodden x86/ARM paths.
We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →