Stephen Crampton wrote:

>I've implemented a simple capture program for my Webcam, however, my frame
>rate is very slow (around 4 fps).  Under Windows XP, my system achieves a
>frame rate of 30 fps (I have a Dell Inspiron 8200 with Pentium 4 at 1.4
>GHz and a Creative WebCam III).
>

The Windows driver supports compression, which allows for a much higher 
frame rate. The Linux driver does too, but you'll need to get the latest 
stable version (1.62) from http://alpha.dyndns.org/ov511/ . After 
compiling the driver, you need to:

insmod ov511.o compress=1
insmod ov511_decomp.o

Then check dmesg. If the driver reports that your camera has an OV7620 
sensor, you should be able to get 30 FPS at up to 352x288, and 10-15 FPS 
at 640x480. If it says you have something else, the frame rate may be lower.

...

>info.format = VIDEO_PALETTE_RGB24;
>  
>

The newer drivers (2.01+) and the driver in the 2.5 kernel don't support 
RGB/BGR any more. You might want to capture VIDEO_PALETTE_YUV420P images 
instead, and use the conversion code that's in the 1.62 driver 
(yuv420p_to_rgb()) to do the conversion in user-space. That will work 
with the 1.xx drivers too.

...

>I notice from the API that you can have the camera dump frames directly to
>the video card's frame buffer.  
>

The driver doesn't support that for a number of reasons, not the least 
of which is that most video cards don't support a YUV420P frame buffer.

>However, I want to be able to manipulate
>the images in real time in my code, so I need it in main memory.
>
>Any suggestions?
>  
>

Just use mmap() like you're doing now, but use multiple buffers (the 
driver supports up to two by default). Here's a pseudo-code example from 
the V4L API docs:

/* setup everything */
VIDIOCMCAPTURE(0)
while (whatever) {
   VIDIOCMCAPTURE(1)
   VIDIOCSYNC(0)
   /* process frame 0 while the hardware captures frame 1 */
   VIDIOCMCAPTURE(0)
   VIDIOCSYNC(1)
   /* process frame 1 while the hardware captures frame 0 */
}

-- 
Mark McClelland
[EMAIL PROTECTED]





_______________________________________________
Video4linux-list mailing list
[EMAIL PROTECTED]
https://listman.redhat.com/mailman/listinfo/video4linux-list

Reply via email to