Star on GitHubStar1.1k stars

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.

Targets
App · Protocol
Category
Independent reconstruction cases
Relationship
Independent reconstruction project
Sources reviewed

Requirements & limits

  • Prerequisites: 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.
  • Scope: 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.
  • Scope: 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.
  • Testing evidence: 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.
  • License: 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.

About this entry

The description was reviewed against primary sources.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · talkaboutdesign/elgato-hdr · Revision 7799d3c
  2. tools/uvc_capture.c GitHub · talkaboutdesign/elgato-hdr · Revision 7799d3c
  3. tools/usb_desc_dump.c GitHub · talkaboutdesign/elgato-hdr · Revision 7799d3c
  4. tools/modetest.py GitHub · talkaboutdesign/elgato-hdr · Revision 7799d3c
  5. build.sh GitHub · talkaboutdesign/elgato-hdr · Revision 7799d3c
  6. LICENSE GitHub · talkaboutdesign/elgato-hdr · Revision 7799d3c
  7. https://github.com/talkaboutdesign/elgato-hdr/pull/1
  8. https://x.com/talkaboutdesign/status/2109795113807630735

More in Apps

All 174 entries in AppsApps case studies (62)

↑↓ move↵ open⌘↵ new tab