mirror of
https://github.com/storytold/filmcraft.git
synced 2026-10-25 10:37:34 -06:00
Extends the Windows backend (#141) to VP9 (profiles 0 and 2) and AV1 (main, 8/10-bit), 4:2:0. - codecs::hw: FrameStreamInfo (vpcC / av1C): profile, bit depth, chroma, picture size and colour as the software decoders report them (vp9_color / av1_color are now shared with them), random-access samples, in-band format changes; StreamInfo lets HybridDecoder handle NAL and frame-coded streams. - platform: media_foundation::stream (what each codec needs: DXVA profile, MFT request, input format), MfDecoder generalised; VP9 frames / AV1 temporal units go in as they are; the MFT's declared picture size (display aperture) is checked against the bitstream's. - Declined up front: VP9 profiles 1/3, AV1 profiles 1/2, 4:2:2/4:4:4, mono, 12-bit, no codec extension, no DXVA profile. A key frame of another size or a different sequence header falls back to the software decoder. - Tests: bit-exact parity (360p / 1080p / 2160p, seeks, resets, flush, hidden frames), forced failure, damaged samples and av1C, format change fallback, WebM / Matroska through the media stack. - Bench: AV1 fixtures with libaom when ffmpeg lacks SVT-AV1. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MMorBHwct72udS2LiC3ZHp