Am Freitag, den 24.06.2011, 20:31 +0200 schrieb Laurent Pinchart:
> Hi Alexey,
> 
> On Friday 24 June 2011 20:25:03 Alexey Fisher wrote:
> > Am Freitag, den 24.06.2011, 20:08 +0200 schrieb Laurent Pinchart:
> > > On Tuesday 14 June 2011 09:39:47 Alexey Fisher wrote:
> > > > Am Montag, den 13.06.2011, 22:48 -0700 schrieb Carl Michal:
> > > > > > Hi,
> > > > > > 
> > > > > > I think you nailed it.  Every frame looks perfect now.  The trace
> > > > > > shows a few of these:
> > > > > > 
> > > > > > Jun 13 09:24:24 uvcvideo: Dropping payload (error bit set)
> > > > > > 
> > > > > > but I don't see corrupt frames any more in either MJPG or YUYV (at
> > > > > > 640x480 anyway) - in MJPG all the frames have the right size.
> > > > > > 
> > > > > > There is a some weirdness with frame rates depending on the
> > > > > > exposure setting: 1) Exposure, auto gives 4 options: auto priority
> > > > > > mode, manual mode, shutter priority mode, and aperture priority
> > > > > > mode.  Auto and shutter don't seem to be settable (errors from
> > > > > > guvcview when chosen). There is also an "Exposure, auto priority"
> > > > > > checkbox.
> > > > > > 
> > > > > > Frame rates drop dramatically in manual mode (to 10-15fps from 30).
> > > > > > 
> > > > > > But I can't really complain at this point - the corrupt frames are
> > > > > > gone. Will that quirk be added to the driver (usb id is:
> > > > > > 0408:2fb1)?
> > > > > > 
> > > > > > Thanks,
> > > > > 
> > > > > Hi,
> > > > > 
> > > > > it seems like I am much better off by fully disabling FID (with your
> > > > > patch) than before.  With the patch, YUYV frames are _always_ the
> > > > > right size.  There are still some problems:
> > > > > 
> > > > > 1) corrupt frames - with part of the image missing or the image
> > > > > displaced. Sometimes (but definitely not always) these occur at the
> > > > > same time as a trace message saying the error bit is set.
> > > > > 
> > > > > 2) sometimes the camera just won't start.  when guvcview (or
> > > > > luvcview) is started, no frames come back from the camera.  There is
> > > > > a light next to the camera that comes on to indicate it should be
> > > > > active, but no frames arrive.  There seems to be a fairly strong
> > > > > correlation with using luvcview (which from the traces seems to use
> > > > > some different mechanism to get frames from the driver from
> > > > > guvcview.  guvcview polls, luvcview doesn't).  Sometimes just
> > > > > restarting guvcview several times will work and the camera
> > > > > eventually starts.  Sometimes just changing resolution or frame
> > > > > rates succeeds in starting the camera.  I haven't found anything
> > > > > reproducible.  I do not think this is related to your patch, as it
> > > > > did happen once before your patch was applied. Unloading and
> > > > > reloading the uvcvideo and ehci_hcd
> > > > > 
> > > > > modules does not consistently solve it. guvcview just lists:
> > > > >   Could not grab image (select timeout): Resource temporarily
> > > > >   unavailable
> > > > > 
> > > > > and the trace shows guvcview polling, but nothing else going on.
> > > > > 
> > > > > I have tried adding the other quirks to the FID quirk, but haven't
> > > > > seen any improvement with any others.
> > > > > 
> > > > > Thanks for you help -
> > > > > 
> > > > > Carl
> > > > 
> > > > Webcam returns error in the middle of some frame, theoretically we
> > > > should drop complete frame. But current uvcvideo just gather data and
> > > > assume the cam will resend previous parts to complete the frame.
> > > > 
> > > > Try attached patch additionally to my previous one.
> > > 
> > > What about not ignoring the data in addition to setting buf->error to 1 ?
> > > This won't solve corruptiong, but would avoid the image effect for
> > > uncompressed formats.
> > 
> > My english (and c) are not my bet qualities. But currently i'm really
> > not sure if i understand. Was it sarcasm?
> 
> Not at all :-)

Ok, i thought you mean some thing like "avoid the image effect" = "avoid
the image"

> If the error bit is set, the packet will be dropped. For uncompressed 
> formats, 
> dropping the data will shift part of the frame up/left and possibly mess the 
> color ups. Instead of doing that, we could handle packets with the error bit 
> set normally. The data will likely be corrupted, but that will "just" corrupt 
> a small part of the frame, and won't shift the rest of the frame up/left. We 
> should then also set buf->error to 1 as done in your patch, to tell 
> applications that the V4L2 buffer contains errors.

Also, you mean:

-               return -ENODATA;
+               if (buf != NULL)
+                       buf->error = 1;
        }

I'll try it on my netbook, it produce 200 packets with error bit set on
every start. Will see how it will looks like.

-- 
Regards,
        Alexey

_______________________________________________
Linux-uvc-devel mailing list
Linux-uvc-devel@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/linux-uvc-devel

Reply via email to