"Every required class records load, decode mode, color, A/V sync, seek accuracy, and resume — on real media, before versus after."
The Synthetic-Test Comfort Zone
It feels rigorous to generate a clean H.264 clip, play it in CI, and call playback "tested." It isn't. Real archives are full of the media that actually breaks players: variable frame rate, 10-bit HDR, an AV1 file with a weird color tag, a damaged transfer, a 40 GB movie on a flaky SMB mount, subtitles in three formats with off-by-one timing. A player that only meets synthetic fixtures has proven it works on the media you don't have.
Ashen Reel's release bar is a golden corpus: Dad's own representative files, each classified, each with an expected result. The corpus records dimensions and expectations — codec, container, bit depth, HDR type, subtitle layout, audio layout — and never a single media byte. The bytes stay on the NAS; only the knowledge about them lives in git.
The Corpus Dimensions
The required classes are chosen because each one is a place players quietly fail: H.264, H.265/HEVC, and AV1; 8-bit and 10-bit; SDR, HDR, and Dolby Vision; MP4, MOV, MKV; embedded and external subtitles in SRT and ASS; multichannel audio; variable frame rate; damaged media; very large files; and a mounted-SMB interruption. Each class records how it decoded, the color/HDR result, A/V sync, seek accuracy, and whether resume behaved.
The Honest Gap
Here is the beat that separates a real release from a press release. When the corpus was captured, no Dolby Vision file existed anywhere in Dad's archive or Spotlight index. The cheap move is to fabricate a Dolby Vision sample, pass the check, and claim full coverage. Ashen Reel did the opposite: it marked Dolby Vision a conditional gate — untested-because-absent, reopening the moment such media actually exists — and shipped 1.0.0 honest about the hole.
The Invariant Under Everything
One class runs on every single corpus item, silently: the source is unchanged. Hash and metadata are compared before and after the whole run. A player that plays perfectly but rewrites a byte, touches a modification time, or drops a sidecar has failed the most important test in the suite. Playing is allowed to do many things; changing the original is not one of them.