Hi Paulo,

Thank you for investigation this.

On Tuesday 30 September 2014 13:56:15 Paulo Assis wrote:
> Ok,
> so I've set a workaround in guvcview, it now uses the length filed if
> bytesused is set to zero.
> Anyway I think this violates the v4l2 api:
> http://linuxtv.org/downloads/v4l-dvb-apis/buffer.html
> 
> bytesused - ..., Drivers must set this field when type refers to an
> input stream, ...
> 
> without this value we have no way of knowing the exact frame size for
> compressed formats.
> 
> And this was working in uvcvideo up until 3.16, I don't know how many
> userspace apps rely on this value, but at least guvcview does, and
> it's currently broken for uvcvideo devices in the latest kernels.

It took me some time to debug the problem, and I think the problem is actually 
on guvcview's side. When dequeuing a video buffer, the application requeues it 
immediately before processing the buffer's contents. The VIDIOC_QBUF ioctl 
will reset the bytesused field to 0.

While you could work around the problem by using a different struct 
v4l2_buffer instance for the VIDIOC_QBUF call, the V4L2 doesn't allow 
userspace application to access a queued buffer. You must process the buffer 
before requeuing it.

> 2014-09-30 9:50 GMT+01:00 Paulo Assis <pj.as...@gmail.com>:
> > I referring to the following bug:
> > 
> > https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1362358
> > 
> > I've run some tests and after increasing verbosity for uvcvideo, I get:
> > EOF on empty payload
> > 
> > this seems consistent with the zero size frames returned by the driver.
> > After VIDIOC_DQBUF | VIDIOC_QBUF, I get buf.bytesused=0
> > 
> > Testing with an eye toy 2 (gspca), everything works fine, so this is
> > definitly related to uvcvideo.
> > This happens on all available formats (YUYV and MJPEG)

-- 
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to