Hi, On Wednesday 25 November 2009 13:49:30 Ramesh Rajagopal wrote: > > I got little luck with UVC bulk transfer after changing the uvcvideo > driver. Now I am getting some frames on the host side. > > In the UVC driver, the > dwMaxPayloadSize(stream->ctrl.dwMaxpayloadTransferSize) of streaming > control variable is being assigned during the enumeration stage. > When we start the luvcview on the host side, this variable is being changed > to "0". This is happening in the call of uvc_v4l2_do_ioctl() with > VIDIOC_S_FMT as a "cmd" variable. > > The function uvc_v4l2_try_format function is copying values of > "bFrameIndex", "formatIndex" and "dwMaxFrameVideoSize" . But it does > re-initialize the dwMaxpayloadTransferSize to "0". > This one causes problem in the uvc_init_video_bulk() which takes > dwMaxpayloadSize for calculating number of URB packets which is becoming > "0" because of the above re-initialization. > > When I applied the attached patch, I could get some frames on my host side. > Without this patch, it was failing on uvc_init_video_bulk() function. > > I am not well familiar with UVC video driver. I don't know whether this is > the correct way of fixing this problem. I may need some help on this issue. > Please find the attachment. Please let me know, how can I proceed from > here.
The dwMaxPayloadTransferSize field should be filled by the device when queried for the current video streaming probe or commit parameters. If the device returns 0, that's a device bug. In that case you should fix the device to return the correct value. -- Regards, Laurent Pinchart _______________________________________________ Linux-uvc-devel mailing list Linux-uvc-devel@lists.berlios.de https://lists.berlios.de/mailman/listinfo/linux-uvc-devel