Case study
Elgato HDR: a userspace capture path for the Elgato 4K X’s 10-bit mode
A native macOS app that reaches the Elgato 4K X capture card’s 10-bit P010 video mode, which the project says Apple’s built-in webcam driver does not expose to apps. A root helper detaches that driver and runs the card’s USB Video Class streaming directly through libusb, feeding a Metal HDR viewer, an HDR10 recorder and an editor. Latency figures and device coverage remain author-reported.
Requirements and limitations
- Reviewed at the 2026-10-13 head, after release 1.0.0 (2026-09-08). It targets an Elgato 4K X on macOS 14 or newer; the README reports building and testing on Apple Silicon only, and other Elgato cards with a P010 UVC format are untested. The HDR preview needs an HDR/EDR display. Among the 10-bit modes, 4K is limited to 30 fps by USB bandwidth.
- Building needs Xcode Command Line Tools and Homebrew’s libusb: build.sh compiles the C helper against libusb, bundles the library, compiles the Swift app and signs it ad hoc, and releases are not notarized. The helper needs one administrator prompt because detaching the macOS kernel driver requires root; it exits about 20 seconds after the app quits and hands the card back to macOS.
- The repository keeps the USB descriptor-dump tools used while reverse-engineering the card and a script that sweeps every capture mode; it contains no vendor firmware or driver binaries. Recordings carry fixed HDR10 mastering metadata because, per the README, the card does not pass the source’s HDMI HDR metadata over USB.
- The README and the Game-mode pull request report display delays of about 48, 22 and 5 ms for the Smooth, Game and Lowest Latency modes at 1440p60 on a 120 Hz MacBook Pro, measured from USB transfer completion to display as reported by macOS; the card’s own processing comes on top, and the PR notes that the test card sent silent audio. These are author measurements and were not reproduced here.
- MIT covers the project code; the bundled libusb library and captured content keep their own terms, and the project states it is not affiliated with Elgato or Corsair. An X post under the same handle credits REA with helping this latency work, but the repository does not mention REA, so REA use is unconfirmed.
About this entry
- Type
- Case study
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Targets
- App · Protocol
Sources reviewed
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Primary sources
- README.md GitHub · talkaboutdesign/elgato-hdr · Revision 7799d3c
- tools/uvc_capture.c GitHub · talkaboutdesign/elgato-hdr · Revision 7799d3c
- tools/usb_desc_dump.c GitHub · talkaboutdesign/elgato-hdr · Revision 7799d3c
- tools/modetest.py GitHub · talkaboutdesign/elgato-hdr · Revision 7799d3c
- build.sh GitHub · talkaboutdesign/elgato-hdr · Revision 7799d3c
- LICENSE GitHub · talkaboutdesign/elgato-hdr · Revision 7799d3c
- https://github.com/talkaboutdesign/elgato-hdr/pull/1
- https://x.com/talkaboutdesign/status/2109795113807630735