BerliOS Logo

Linux UVC driver and tools

Introduction

Welcome to the USB Video Class Linux device driver home.

The goal of this project is to provide all necessary software components to fully support UVC compliant devices in Linux. This include a V4L2 kernel device driver and patches for user-space tools.

The USB Device Class Definition for Video Devices, or USB Video Class, defines video streaming functionality on the Universal Serial Bus. Much like nearly all mass storage devices (USB flash disks, external IDE disk enclosures, ...) can be managed by a single driver because they conform to the USB Mass Storage specification, UVC compliant peripherals only need a generic driver.

The UVC specification covers webcams, digital camcorders, analog video converters, analog and digital television tuners, and still-image cameras that support video streaming for both video input and output.

Due to the limited available man power and the broad scope of the UVC specification, the Linux UVC project will concentrate the development efforts on video input devices, especially webcams. Video output devices will be considered at a later time.

Please visit the BerliOS project page for support forums, mailing list archives and source code repository.

Status

The Linux UVC projects is currently focussing on kernel support for UVC devices. The driver implements the Video4Linux 2 (V4L2) API. Support for V4L1 is not planned.

The following table lists the UVC features supported by the Linux UVC driver.

UVC Feature Status Comments
UVC 1.0 descriptors Yes
UVC 1.1 descriptors Yes
Camera input terminal Partially Video controls are not implemented.
USB Streaming terminal Yes
Processing unit Yes
Selector unit Yes
Extension unit Partially Extension controls are not implemented. They will require device-specific support.
Still image capture No
Video streaming Yes
Uncompressed payload Partially Timestamps support is not implemented.
MJPEG payload Partially Timestamps support is not implemented.
DV payload Partially Timestamps support is not implemented.
MPEG-2 TS payload No
Frame-based payload Partially Timestamps support is not implemented.
Stream-based payload No

Supported devices

The table below lists known supported devices. Other UVC compliant video input devices are very likely to be supported. If your UVC device is not listed below, please report it to the Linux UVC development mailing list.

Device ID Name Manufacturer
041e:4057 Creative Live! Cam Optia Creative Labs
041e:4058 Creative Live! Cam Optia AF Creative Labs
046d:08c1 Logitech Quickcam Fusion Logitech
046d:08c2 Logitech Quickcam Orbit MP Logitech
046d:08c3 Logitech Quickcam Pro for Notebooks Logitech
046d:08c5 Logitech Quickcam Pro 5000 Logitech
046d:08c6 Logitech Quickcam OEM Dell Notebook Logitech
046d:08c7 Logitech Quickcam OEM Cisco VT Camera II Logitech
046d:08c9 Logitech Quickcam Ultra Vision Logitech
046d:08ca Logitech Quickcam Fusion (2006 model) Logitech
046d:08cb Logitech Quickcam Pro for Notebooks (2006 model) Logitech
046d:08cc Logitech Quickcam Orbit MP (2006 model) Logitech
046d:08ce Logitech Quickcam Pro 5000 (2006 model) Logitech
046d:0990 Logitech Quickcam Pro 9000 Logitech
046d:0991 Logitech Quickcam Pro for Notebooks (2007 model) Logitech
046d:09b0 Acer OrbiCam (found in notebooks) Logitech
046d:09c1 Logitech Quickcam Deluxe for Notebooks Logitech
04cb:0172 Fujifilm FinePix E550 Fujifilm
04da:2318 Panasonic Camcorder NV-GS11 Panasonic
04da:231d Panasonic Camcorder NV-GS27EG Panasonic
04f2:b012 Chicony 1.3M UVC Webcam (Asus G1S notebooks) Chicony Electronics
04f2:b018 Chicony 2M UVC Webcam (Compal notebooks) Chicony Electronics
05a9:2640 OmniVision OV2640 (Dell Inspiron 1420/1720 notebooks) OmniVision
0ac8:c302 Vega USB 2.0 Camera (Samsung Q45 notebook) Vimicro
0c45:62c0 Sonix USB 2.0 Camera (Acer Aspire 5050 and HP Pavillon DV6000 notebooks) Sonix Technology
18cd:cafe Pico iMage Ecamm
19ab:1000 Bodelin ProScope HR Bodelin
5986:0100 Acer OrbiCam (found in notebooks) Unknown
5986:0200 Acer OrbiCam (found in notebooks) Unknown

Download

Source code for the Linux UVC kernel driver can be found in the Linux UVC Subversion repository on the BerliOS project page.

If you are in a hurry, checkout the latest version with

svn checkout svn://svn.berlios.de/linux-uvc/linux-uvc/trunk

Documentation

More information can be found in the unofficial wiki.

For developers, the USB Video Class specification is available on the USB Implementers Forum website.