libuvc package from libuvc repo


Third-Party Package

This 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.

Package Summary

Tags No category tags.
Version 0.0.5
License BSD
Build type CMAKE

Repository Summary

Checkout URI
VCS Type git
VCS Version v0.0.5
Last Updated 2014-07-19
CI status No Continuous Integration
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

USB Video Class driver library

Additional Links

No additional links.


  • Ken Tossell


No additional authors.

libuvc is a cross-platform library for USB video devices, built atop libusb. 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
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 CMakeCache.txt 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

Happy hacking!

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 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.

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Package Dependencies

Deps Name
1 catkin

System Dependencies

Dependant Packages

Launch files

No launch files found


No message files found.


No service files found


No plugins found.

Recent questions tagged libuvc at