Skip to content
NuclearMeltdown edited this page Aug 25, 2026 · 5 revisions

CapView

This wiki is the long version. The README says what CapView is and how to run it; the pages here say how each part works, which file it lives in, and why it was built the way it was.

Most of what is written down here was measured rather than reasoned about. Where a number appears — a threshold, a window width, a percentage — it came off this hardware: a StarTech PEXHDCAP60L, a PAL SNES over composite, and a GameCube at 480i and PAL-60. Where something is untested, the page says so.

The picture path

Page What it covers
Latency The capture path end to end, and the four decisions that make it short
Source and signal Device enumeration, format forcing, the analogue video standard
Colour range and matrix Why the range is measured from the pixels rather than read from the format
Signal detection Telling snow from a scene cut, and the empty state
Deinterlacing How interlace is detected, and what the five modes actually do
The composite filter Dot crawl, rainbow shimmer, and the two halves that remove them
Cropping and geometry Automatic border detection, rotation, line doubling, aspect
Scaling and sharpening The five scalers and contrast adaptive sharpening
High dynamic range PQ, HLG, tone mapping, and what each output writes

What leaves CapView

Page What it covers
Recording The writer thread, the audio master clock, containers and splitting
Encoder settings One set of names translated into four vendors' own
ffmpeg Locating it, downloading it, and probing what the hardware can do
Audio WASAPI passthrough, drift correction, the microphone, track layout
Screenshots PNG, JPEG, JPEG XR and AVIF, why WIC rather than ffmpeg, and the two grab points
Virtual camera The Media Foundation source, the shared section, and the DLL name problem

The program itself

Page What it covers
The settings window A window of its own, what it shows for which source, and the stutter that took three fixes
Configuration and profiles What is stored, where, and what a profile holds
Updates Checking GitHub, and replacing a running executable
Shortcuts The key list and how rebinding works
Translations Why the strings sit inline instead of in a table
Building Toolchain, build script, what ends up in the binary

Conventions used here

Source references are given as path/file.cpp with the function name, because the code carries its own reasoning in comments and this wiki is a guide to it rather than a replacement for it.

"Measured" means exactly that: a number taken from a running capture, usually through the statistics overlay (F1) or a temporary log line. "Estimated" and "untested" are used where that was not possible.

Clone this wiki locally