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

Reply via email to