Hi Samir,
On Wednesday 28 November 2007, Samir Ibradzic wrote:
> Hello Laurent,
>
> I've tried the USB capture thing... Used SnoopyPro, and because of the
> size of the files i will attach them only to you personally... The
> reason for the big file size is that i started capture before plugging
> the cable, then i tested the video stream in Media Player Classics for a
> secund or two... The reason because there are two files is that there
> were two devices in SnoopyPro, with similar IDs, but somewhat similar
> capture results;
Thanks for the logs. The binary format scared me, but I found a tool to dump
the logs to text (http://www.stillhq.com/usblogdump/).
> USB\Vid_0474&Pid_0722&Rev_0000&MI_00,USB\Vid_0474&Pid_0722&MI_00 - USB
> Video Device
>
> and
>
> USB\Vid_0474&Pid_0722&Rev_0000,USB\Vid_0474&Pid_0722 - USB Composite
> Device
>
> What is the deal with these two?
That's just the way Windows deals with devices that have more than one
function. Sniffing the composite device will probably log all URBs regardless
of the function (camera, ...), while sniffing the video device will only log
video-related URBs. Don't take this for granted as I'm no Windows expert, but
I expect it to work like that.
> I also have to mention that when i plug this phone into USB, I get the
> menu on it, where i select if it should work as USB camera, Storage
> Device, USB Print device or Direct Comm. Transfer mode. Prior to
> selecting USB camera mode there is no activity on USB, afaik...
>
> Thanks again! I just hope we will come up with something...
Could you please try the attached patch ? You can discard the previous ones.
Best regards,
Laurent Pinchart
Index: uvc_video.c
===================================================================
--- uvc_video.c (revision 147)
+++ uvc_video.c (working copy)
@@ -70,7 +70,7 @@
__u8 size;
int ret;
- size = video->dev->uvc_version > 0x0100 ? 34 : 26;
+ size = video->dev->uvc_version >= 0x0110 ? 34 : 26;
ret = __uvc_query_ctrl(video->dev, query, 0, video->streaming->intfnum,
probe ? VS_PROBE_CONTROL : VS_COMMIT_CONTROL, &data, size,
UVC_CTRL_STREAMING_TIMEOUT);
@@ -105,7 +105,7 @@
ctrl->bMaxVersion = 0;
}
- if (ctrl->dwMaxVideoFrameSize == 0 && video->dev->uvc_version <= 0x0100) {
+ if (ctrl->dwMaxVideoFrameSize == 0 && video->dev->uvc_version < 0x0110) {
/* Some broken UVC 1.0 devices return a null
* dwMaxVideoFrameSize. Try to get the value from the format
* and frame descriptor.
@@ -130,7 +130,7 @@
__u8 data[34];
__u8 size;
- size = video->dev->uvc_version > 0x0100 ? 34 : 26;
+ size = video->dev->uvc_version >= 0x0110 ? 34 : 26;
memset(data, 0, sizeof data);
*(__le16*)&data[0] = cpu_to_le16(ctrl->bmHint);
_______________________________________________
Linux-uvc-devel mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/linux-uvc-devel