Third-Party PackageThis third-party package's source repository does not contain a package manifest. Instead, its package manifest is stored in its release repository. In order to build this package from source in a Catkin workspace, please download its package manifest.
|Tags||No category tags.|
- Ken Tossell
libuvc is a cross-platform library for USB video devices, built atop
It enables fine-grained control over USB video devices exporting the standard USB Video Class
(UVC) interface, enabling developers to write drivers for previously unsupported devices,
or just access UVC devices in a generic fashion.
Getting and Building libuvc
Prerequisites: You will need
libusb and CMake installed.
To build, you can just run these shell commands:
git clone https://github.com/ktossell/libuvc cd libuvc mkdir build cd build cmake .. make && sudo make install
and you're set! If you want to change the build configuration, you can edit
in the build directory, or use a CMake GUI to make the desired changes.
Developing with libuvc
The documentation for
libuvc can currently be found at https://int80k.com/libuvc/doc/.
Changes in 0.0.5 (2014-07-19) ---------------- New features: - Added support for all of the camera terminal and processing unit controls, including the controls that appeared in UVC 1.1 and 1.5. - Added LIBUVC_VERSION_GTE(major, minor, patch) macro. Bug fixes: - Switching to explicit kernel driver detachment since auto_detach isn't available in libusb < 1.0.16. - The cmake module now looks for libuvc.dylib instead of libuvc.so on OS X. Changes in 0.0.4 (2014-06-26) ---------------- New features: - Support devices with multiple streaming interfaces and multiple concurrent streams. A new uvc_stream* API is added, along with a uvc_stream_handle type to encapsulate the state of a single UVC stream. Multiple streams can run alongside each other, provided your USB connection has enough bandwidth. Streams can be individually stopped and resumed; the old uvc_start/stop_streaming API is still provided as a convenient way to interact with the usual one-stream devices. - Added support for MJPEG streams. - Added functions for checking/setting autofocus mode. - Added an interface to set/get arbitrary controls on units and terminals. - Made the input, output, processing and extension units public. - Implemented uvc_get_device and uvc_get_libusb_handle. - Add a library-owned flag to uvc_frame_t so that users may allocate their own frame buffers. Bug fixes: - Send frames as soon as they're received, not when the following frame arrives - Fixed call to NULL when no status callback is provided. - Fixed crash that occurred during shutdown if the USB device was disconnected during streaming. Miscellaneous improvements: - Hid the transfer method (isochronous vs bulk) from the user. This was never really selectable; the camera's streaming interface supports either bulk or isochronous transfers, so now libuvc will figure out which one is appropriate. The `isochronous` parameter has been converted to a `flags` parameter, which is currently unused but could be used to convey up to 7 bits of stream mode information in the future. - Improved the method for claiming the camera's interfaces. - Renamed UVC_COLOR_FORMAT_* to UVC_FRAME_FORMAT_*. The old #defines are still available. - Simplified format definition and lookup. - Improved transfer status (error) handling.