#432: VP8 video decodes (clean-room pure-Rust VP8 decoder)

VP8 WebM showed black video: there was no VP8 decoder. New L0 crate
filmcraft-vp8, implemented from RFC 6386 sections 1-19 (tables extracted
from the RFC text, nothing from the attached reference decoder): every
coding tool, versions 0-3, hidden altref frames, size changes. Bit-exact
with libvpx on 62 libvpx VP8 test vectors, real-world FATE samples and
generated fixtures; never panics on corrupted input.

Wired into codecs for Matroska / WebM (V_VP8, including the alpha layer
of transparent WebM) and MP4 (vp08). VP8 colour is BT.601 (RFC 6386 9.2).
A hidden altref frame is a WebM block of its own with the time of the
frame that follows it: the VP8 time lookup now moves on to that shown
frame instead of repeating the previous one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
MrCloudy2
2026-10-11 15:13:07 +02:00
co-authored by Claude Opus 5.5
parent 4e2d0bc2d3
commit 53a0d959fe
32 changed files with 3388 additions and 11 deletions
+1
View File
@@ -44,6 +44,7 @@ const LAYERS: &[(&str, u8)] = &[
("h264", 0),
("h264enc", 0),
("hevc", 0),
("vp8", 0),
("vp9", 0),
("prores", 0),
("mjpeg", 0),