Commit 3f64da5
services: add CoreMediaIO backend for ValeriaScreenCapture (macOS, pure ctypes)
Sibling implementation to valeria_libusb (next commit) for macOS, where
libusb cannot claim Apple USB interfaces. CoreMediaIO is the same kernel
pathway QuickTime Player uses for iOS screen recording.
Pure ctypes against the public C API: CoreMediaIO + CoreMedia +
CoreVideo + CoreFoundation + CoreGraphics. No PyObjC, no Objective-C
runtime — only ABI shapes from the SDK headers.
Threading note: the DAL plugin loads in response to mach messages
dispatched by the *process main thread's* CFRunLoop, so start() ticks
the runloop synchronously until the device attaches, and frames() /
aframes() interleave runloop ticks with queue drains.
Same H264Frame shape as the libusb backend — ValeriaScreenCapture.create()
auto-selects this backend on macOS.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>1 parent 2145c54 commit 3f64da5
1 file changed
Lines changed: 718 additions & 0 deletions
0 commit comments