OpenSolaris already supports USB webcams and a video conferencing
application (Ekiga). Please refer to
USB
webcam driver project page for
detail. This project is going to
enhance
the support of USB webcams.
USB
webcams are popular now, they are widely used in desktop/laptop
systems. Some video applications, like video conferencing, can not work
without these devices.
At present, USB webcam drivers running in OS kernel support some basic
webcam functions, like read video stream from the device, issue some
video control commands to the device, decode video formats, etc.
However, it is too difficult to develop/update kernel drivers to
support all the fancy features from webcam vendors. Some new features
(like face tracing, pan, etc.) are vendor specific, and people need
implementing proprietary algorithms to support them. Therefore, it is
not easy to support these features in kernel drivers, especially in
class drivers.
To further illustrate the problem, let's take USB video class spec (see
usb.org) as an example. This class spec defines common video interfaces
that a USB webcam may have, but these interfaces can not cover the new
features mentioned above. From the hardware view, the spec does
allow webcam vendors to extend their own fancy features by implementing
some extra functions in the device. From the software view, although
webcam vendors can write their own device drivers to support the fancy
features, it is really a tough task to re-write a kernel driver. A much
better choice is, keeping the kernel driver untouched or making only
slight modifications to the kernel driver, instead, we implement the
vendor specific features in userland libs and applications.
The first stage of this project will focus on supporting some Logitech
webcams. Because they are popular in the market and there are several
models of them are compliant to USB video class spec. There is a usb
video class driver available for these class compliant webcams, so some
basic video features are already supported by the driver. It is
feasible to enhance the support of the webcams complaint to USB video
class spec first.
Investigating. We need have a good design first.