Matias Freytes <mfreytes@xxxxxxxxxxxxxxxxxxxx> wrote > Hello, > I've been playing around with Mc Clelland's > ov511-2.2.18-backport-1.33-1 driver and a usb Creative Webcam > III. I believe it takes too long to get one QCIF (176x144) > YUV420 frame (60 to 85 ms). I'm running 2.2.18 on a Pentium 3 > 550MHz PC: > > I don't care loosing some frames, but definitely need > to capture each frame faster. This is the measured C source > code: > > .... > > mmap.width = 176; > mmap.height = 144; > > /* Chrono started here */ > > error = ioctl (vid, VIDIOCMCAPTURE, &mmap); > if (error || mmap.width!=176 || mmap.height==144) > printf ("VIDIOCMCAPTURE ERROR:%d, %d, %d\n", error, > mmap.width, map.height); > > error = ioctl (vid, VIDIOCSYNC, &mmap.frame); > while (error!=0) { > printf ("VIDIOCSYNC ERROR:%d\n", errno); > error = ioctl (vid, VIDIOCSYNC, &mmap.frame); > } > > /* Chrono stopped here */ > There're no "printf("VIDIOCSYNC ERROR:%d\n", errno)" on my > stdout, so there are no SYNC errors. Is there any way I could > speed this up? I need to get it done in about 30 to 40ms. Ok, effectively you are just timing the mmap operation. But to understand why it takes so long, you'll have to dig a lot deeper in the sources. Perhaps you could start with ov511.c . As I understand it, the problem here is not in userland. I have no idea how to profile kernel modules however. Maybe using printk in conjunction with some timer... Good luck, -- Ragga