> > > the UVC driver seems to be out of standard about VIDIOC_STREAMON. > > > > > > According to the V4L2 API, ioctl(VIDIOC_STREAMON) > > > should return the -EINVAL error code if no input buffers > > > are enqueued (yet), while the UVC driver returns 0. > > > > No, according to the V4L2 API, ioctl(VIDIOC_STREAMON) should return > > -EINVAL if "no buffers have been allocated (memory mapping) or enqueued > > (output) yet.". The specification clearly states that the lack of queued > > *output* buffers leads to -EINVAL. Having no queued input buffers > > shouldn't trigger any error condition. > > Sorry, I didn't remember that "(output)". It turns out that I found > a bug in my driver. However, do you know any reasons why > VIDIOC_STREAMON should trigger an error when there are no enqueued > output buffers, while VIDIOC_STREAMON has to succed in the same case for > input buffers?
No, not really. It's a bit inconsistent. I don't see any technical reason to force the user to enqueue buffers before calling STREAMON. Might be worth asking on the V4L list. Best regards, Laurent Pinchart _______________________________________________ Linux-uvc-devel mailing list Linux-uvc-devel@lists.berlios.de https://lists.berlios.de/mailman/listinfo/linux-uvc-devel