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

Reply via email to