-
Notifications
You must be signed in to change notification settings - Fork 0
Home
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.
| 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 |
| 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 DirectShow filter, the source 1:1, the shared memory, and the DLL name problem |
| 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 |
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.