Creates a usb context per camera.
Previously, we had a single usb context for everyone. This was causing the usb context thread handler to be overloaded and signficantly reduced performance (and possibly caused frame corruption?). As of this commit, CPU consumption for uvc devices is greatly reduced (although still not on pair with devices using direct show!). Tested on Windows 8.1 and Windows 10. One issue was observed during tests with this new context setup. Sometimes when reinitializing (e.g., changing the framerate or resolution), the uvc stream will be initialized without errors, but we only receive a single (sometimes corrupted) frame back; afterwards, no new frames are received. Reopening the camera seems to solve the issue, so this is low priority atm.
Showing with 130 additions and 91 deletions