Driver Development
The the CVS versions of both the qce-ga and qc-usb driver are available by following these instructions. If you are interested in the older, unsupported qce-ga driver, check out the quickcam module, that is, use the command cvs co quickcam. The qc-usb driver can be obtained by checking out the qc-usb (the command to use is co qc-usb).
The development mailing list is hosted as qce-ga-devel at Sourceforge. Please use the development list only to submit patches and to discuss development-related issues. The developers' list, like the users' list, is reflected to Usenet at gmane.linux.drivers.quickcam.devel.
Development Roadmap
Broadly stated, my (Kurt Wall's) goal is to take the driver to the next level. I outlined my first steps in this message. Briefly, my initial intent is to stabilize the driver as it is:
- Integrate existing patches
- Resolve outstanding bugs
In the course of doing these two items, I will more thoroughly familiarize myself with the code.
After the qc-usb driver has been stabilized, tasks that need to be done include but are not limited to the following, which appear in no specific order:
- Break things like qcset out as stand-alone utilities. Supporting programs need to be separate from the driver (call them qc-utils, say).
- Autotool the stand-alone utilites. This isn't as important as other items on the list, but should happen eventually.
- Move functionality into user-space (such as decoders). qc-usb will never get into the kernel if it does in kernel space what properly should be done in userland. The sub-task here is to decide what can and should be done in user-space.
- Modify the driver to use sysfs and adapt the driver to the new driver model.
- Major code clean-up, including removing backward-compatibility for pre-2.6 kernels. 2.6 is two years old now and I'm not aware of any major distribution kernel that is still at 2.4.
- Make the code conform to kernel code standards.
- Create a proper manual page and documentation.
- Move to v4l2. There are lots of handy features in v4l2 that we can't use right now.