The suggestion I've made to the team is to provide an accessor for the IOKit object, which would then let you use whatever criteria you wanted to invent. Unfortunately, the real difficulty here is scheduling and prioritization, not necessarily the API work itself.
Sounds like a good solution, I hope to see it implemented one day.
The Elgato 4K X enumerates differently depending on the bus speed it is enumerated at. Its PID is different on USB 2, USB 3 Gen 1 (5Gbps) and USB 3 Gen 2 (10Gbps).
I see, that would make perfect sense, I'll try and replicate the issue and check the negotiated speed. I'm using 3 Anker USB 3.2 Gen 2x2 cables, but maybe one of the three is faulty.
This won't fix your original problem, but why do you care? You can synthesize your own persistent device identifiers. Undoubtedly, it would be convenient to have a uniqueID which is persistent and stable across topology changes, but you can create your own property and tack it onto your abstraction.
You're right. However, it's troublesome to convince maintainers of other applications like FFmpeg & OBS to accept a PR/fix. If there was an ID provided by AVCaptureDevice that persisted with reboots it requires little justification.
Topic:
Media Technologies
SubTopic:
Video
Tags: