I just tried:

#define UVC_URBS                10
#define UVC_MAX_ISO_PACKETS     20
in uvcvideo.h

and I have the same problem...

Regards,

Julien Quelen


On Thu, 2007-05-10 at 13:21 +0200, Laurent Pinchart wrote:
> 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