Re: [PATCH] Image capturing driver for Basler eXcite smart camera

From: Thomas Koeller
Date: Mon Aug 14 2006 - 15:24:06 EST

On Monday 14 August 2006 17:53, Ãric Piel wrote:
> 08/12/2006 07:27 PM, Thomas Koeller wrote/a Ãcrit:
> Hello,
> Maybe I just completely misunderstood you point, in which case I
> apologize... However from what it seems, you are proposing a kernel
> driver for the hardware which is inside the product described on the
> webpage. This driver will run on a processor embedded into this camera.
> It will allow some user-space programs which also run on this processor
> to acquire pictures generated by the captor. Am I right so far?


> If so then the Video4Linux2 API is still the best way to implement the
> protocol to pass data between the user-space programs and the driver.
> The V4L2 API doesn't says that the camera must be far away from the
> processor, it can work for USB webcams, for Firewire video camera, PCI
> TV tuners, and probably also for your device. Using the V4L2 not only
> has the advantage of being a well tested API for communicating video
> related information with the user-space but it also buys you the fact
> that any program available on Linux for video should be able to directly
> detect and use the captor!

Sorry, but no. The camera has been designed to be used in industrial
control applications, such as quality assurance. Think of an automated
inspection of a certain product, where the inspection is integrated
into the production process. Faulty products are sorted out. For this to
work it is absolutely necessary to get the maximum speed (image frames
per second) out of the hardware, so image acquisition and processing
must be carried out in parallel. The way to achieve this is have the
driver manage a queue of image buffers to fill, so it will continue
grabbing images even if no read operation is currently pending. Also,
the ability to attach user-specific context information to every buffer
is essential.

Another reason to choose this API was to ease customer migration from
PC-based solutions involving IEEE-1394 and Gigabit Ethernet cameras
(of which my employer is a major manufacturer) to the eXcite platform.
These devices ship with driver software that implements a very similar
API, and we provide user-space libraries that allow for writing generic
software that will run on the eXcite platform as well as on a PC with
a dumb camera attached via FireWire or GigE. There is an entire
software framework, of which this driver is just a small component.

Finally, the camera already ships with the software as is, so changing
the API is out of the question, as it would break customer applications.

> That said, thank you already very much for submitting your driver to the
> Linux kernel. Your code seems already good quality and conformant with
> the coding style of the kernel. Still, some people will review your
> code, and let you know what they think might be problematic. This is the
> normal process for driver acceptance, for the good both of your driver
> and of the kernel. When you have answered the different suggestion,
> please resubmit your new version of the driver with the change. I
> suggest also CCing video4linux-list@xxxxxxxxxx :-)
> See you,
> Eric
> > I am not subscribed to lkml, so please cc my address thomas at koeller
> > dot dyndns dot org on all replies.
> Please, also keep the CC: in your answers.

Thanks for taking the time to look at the code!


Thomas Koeller, Software Development

Basler Vision Technologies
An der Strusbek 60-62
22926 Ahrensburg

Tel +49 (4102) 463-390
Fax +49 (4102) 463-46390

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at