Hi Julien, > On Thu, 2007-05-10 at 10:56 +0200, Laurent Pinchart wrote: > > Hi Julien, > > > > > I am working on video capture with several cameras. > > > I have Logitech QuickCam UltraVision webcams. > > > > > > Is it possible to reduce the number of packets per isochronous URB in > > > uvcvideo driver? > > > By default, UVC_MAX_ISO_PACKETS is egual to 40. > > > > Yes that should be possible. I'm curious, why do you want to do that ? > > I try to capture images with several synchronized cameras. I started > with 2. > In the configuration I use my cams, (2 captures at JPEG VGA 30fps), I > observe: > - An image output period granularity of 5ms for each camera (difference > between 2 consecutive images queued in the same cam is either 30ms or > 35ms). This comes from the fact that an URB is received in uvc driver > every 5ms (40 packets of 125us). So as the real period of the streaming > emitted by the camera is 30fps (I verified with packets PTS and SCR > fields), an EOF is detected (and the corresponding image is queued) by > uvc after 30ms, or 35 ms sometimes. > > - A image synchronisation jump between 2 cameras. When my 2 cameras are > synchronized more or less, I still observe some delay jumps of 35ms > immediately recovered on the next frame. My explication is: Let's > suppose my 2 cameras are synchronized.The 5ms period granularity makes > that potentially 1 image can be queued in one driver 5 ms after the > corresponding synchro image on the other driver. During these 5ms, if I > dequeue an image (VIDIOC_DQBUF) on the 2 driver, I put the 2 queues in > a different state.=>one frame desynchro > > That why I would like to minimize this 5ms time.. > > > > When I change this value to 10 for example, image capture with 1 cam > > > works fine. However, as soon as i add and capture from a second camera, > > > images on both cams appear wrong (bad colours, image cut).. > > > > Does it work with 40 packets ? > > Yes 2 cams capture works fine with 40 packets. For info, it works also > for any higher multiple of 40 (80, 120, 160 ..packets), but not for any > other value.. I can't explain why..
Could you try lowering the number of packets per URB to 20, and allocating twice as much URBs ? If it still works, you could try 10 packets per URBs with 4 times as much URBs. Laurent Pinchart _______________________________________________ Linux-uvc-devel mailing list [email protected] https://lists.berlios.de/mailman/listinfo/linux-uvc-devel
