I am developing a USB UVC product and we are seeing poor performance on VLC. We are streaming 16 bit 1080p60 Uncompressed video but VLC says the codec is 32 bit RV32 Uncompressed with a frame rate of 0.0000033. Something is obviously wrong and I want to view the USB descriptors on my Mac to verify what the Mac is seeing the USB device is capable of. How can I do this?
Looking online I found an IORegistryExplorer application but that doesnt seem to give me the full descriptors of the connected USB device, just some metadata about the connection. Any help finding the descriptor would be appreciated.
Something is obviously wrong and I want to view the USB descriptors on my Mac to verify what the Mac is seeing the USB device is capable of. How can I do this?
In terms of application options, there is an old tool called "USB Prober" that might help, however, getting access to it will be a bit involved. Note that this tool is VERY old, so I can't promise it will get you what you want or even run at all. It worked on the Intel iMac (2019) running Sonoma that I happened to have at hand, but this isn't something we made any effort to maintain. If you want to try it:
-
You need to have an Intel machine available, as the USB stack on ARM has diverged enough that it just hangs.
-
You can find the installer if you search for "USB" in the "More Downloads" section of the developer site. That will find "IOUSBFamily Log Release for OS X 10.9.4", which is that last place time we released it.
-
The app itself is inside either of those installers, but both of those installers are so old that neither of them should be run on a modern system, assuming they'll run at all. You'll need to extract the app "manually" instead. I used Pacifist, but I'm sure their are other options.
-
If the app doesn't run after you've extracted it, you may need to manually strip quarantine data (this happened to me).
I'm not sure if that will have the data you're looking for but this was the tool we used to provide for this sort of thing. If that doesn't get you what you want, then the other option would be to write a test app using IOUSBHost to talk directly to the device.
__
Kevin Elliott
DTS Engineer, CoreOS/Hardware