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
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
Reopening the camera seems to solve the issue, so this is low priority