> > > 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

Reply via email to