V4L/DVB (9661): uvcvideo: Commit streaming parameters when enabling the video stream
authorLaurent Pinchart <laurent.pinchart@skynet.be>
Wed, 12 Nov 2008 14:46:43 +0000 (11:46 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 29 Dec 2008 19:53:36 +0000 (17:53 -0200)
commit23867b2511140ae5693587d2b15badbcc632e3cc
treee49a03ae6392882708c59aac447998fc18c059c1
parent9bc6218dc1dc7bd421f3d141241c8e0e70c4e92b
V4L/DVB (9661): uvcvideo: Commit streaming parameters when enabling the video stream

Sonix-based cameras seem to require the host to commit video streaming
parameters before selecting the alternate endpoint. While most applications
issue a VIDIOC_S_FMT ioctl before starting streaming, this is not required
by the V4L2 specification.

The problem has been noticed on Ubuntu 8.10 with applications using libv4l.
The library blocks VIDIOC_S_FMT calls when the requested format is identical
to the currently selected format. As the driver commits video streaming
parameters when initialising the device, only the first run of a
libv4l-enabled application would succeed.

For the sake of completeness, experiment showed that the camera keeps sending
12 bytes isochronous packets (header only, no data) without toggling the FID
bit if video streaming parameters haven't been committed before selecting the
alternate endpoint.

Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/uvc/uvc_v4l2.c
drivers/media/video/uvc/uvc_video.c