[Prev][Next][Index][Thread]

Re: Quickcam device driver for Linux



Hello,

On Sat, 14 Jun 1997, Thomas Davis wrote (about qcam driver) :
> been there, done that.
> you'll find that the qcam hardware will kill that driver.
> you end up with no system interrupts will pulling a picture off the
> camera, and really jerky system response.
> No, there really is no way to fix this.

I don't agree with you. Standard printer driver works in a similar way
and does not have problems you talk about.

I thougt about this some months ago and i wrote a kernel module driver
(can be used with kerneld) for Linux + b/w (only!) quickcam. It's based on
qcam-0.91 and many others. Results are quite good. 
Features : 
 - no "jerky system response" (after some tuning & looking at lp driver)
solution is simple, if camera is a bit too long to answer, or if the cpu
has been kept for too long, driver goes to interruptible sleep state
(all this is tuneable).
 - better frame rate (i rewrote read loop - i've lost my measures, but
it's at least 10% better than qcam-0.91)
 - very good behavior on high load (quality doesn't change when
load increase - this is because the driver can choose when it can
be interrupted, so there are no white dots on pictures or things like
that)
 - better security (drivers that must be in root users apps are
potential very big security holes (and it's so ugly :) ))
 - all operations have timeouts, so even a hardware problem can't lock the
computer.
 - camera settings are saved between uses, so you can tune camera with
xfqcam and then kill it and record a movie without needing many command
line parameters (in fact autoexposures is always better i think :) )
 - i've also written a library with the same interface as standard libqcam
that uses my driver. so any application that use libqcam (nearly all apps
i've seen when i made this library) can be reused with nearly no changes.


I've also done some applications to use it:
 - X11 & svgalib viewers (very simple with a snapshot option)
 - a movie recorder with motion detection trigger (there are scripts
for making animated gif & mpegs. see samples at 
http://hal.rez-gif.supelec.fr/~eric/movies/ , flashing images are caused
by a hardware problem on my quickcam)
 - a simple (and light and easy to use) http server for feeding a netscape
client (or many at the same time) with streamed video (see
http://hal.rez-gif.supelec.fr/~eric/qcam.html but it's nearly always
offline)


I wrote all this because nearly all quickcam software i found didn't work
on my computer (or didn't work well), and i didn't like the way it was
done (having to su root for looking through the camera is really stupid
(and not secure!). suid root is worse. we have enough holes!)

The problem is that i've never finished it nor released something (never
have time). All this works very well on my computer, i use it often
for doing stupid movies or saying hello to friends in their netscape
browser or things like that :) . But it is not supposed to work elsewhere.

If you're interested in this work, i can release it in some
days (i've to remember how it works, write a 10 lines README & a real
makefile and quote all people i've taken code from :) )


--
Eric Berenguier :-) - eric@hal.rez-gif.supelec.fr/berengui_eri@lsi.supelec.fr
   Supelec - Residence des eleves - 91192 Gif sur Yvette - 01 69 85 50 16
                   http://hal.rez-gif.supelec.fr/~eric




Follow-Ups: References: