Hi Amy,
On Monday 29 December 2008, Amelie Zapf wrote:
> Dear Laurent,
>
> since USBlyzer does not support exporting the data you asked for and also
> does not support copying data from inside the application to outside, I had
> to write the info down for you by hand. Please find attached 2 files:
>
> webcam-usbcapture-list.txt: as before, shortened to just behind the
> beginning of the "Isoch transfer" fields.
>
> webcam-usbcapture-extrainfo.txt: The other details you asked for, namely:
> bmRequestType, bRequest, wValue, wIndex, wLength, Raw Data. The link
> between the two files is the unique Seq number.
Thanks a lot for the data.
I would like to compare the Windows trace with a Linux trace. At your
convenience, you can either use usbmon to capture a USB trace or apply the
attached patch to the driver to print extra debugging messages to the kernel
log.
Regardless of the solution you choose, please send me the messages printed to
the kernel log by the uvcvideo driver after running luvcview (something
similar to what you posted on 04/11/08).
Best regards,
Laurent Pinchart
diff -r bb383c9099da linux/drivers/media/video/uvc/uvc_video.c
--- a/linux/drivers/media/video/uvc/uvc_video.c Mon Dec 29 02:32:29 2008 +0100
+++ b/linux/drivers/media/video/uvc/uvc_video.c Mon Dec 29 13:22:47 2008 +0100
@@ -25,6 +25,26 @@
#include <media/v4l2-common.h>
#include "uvcvideo.h"
+
+static void uvc_print_video_ctrl(struct uvc_streaming_control *ctrl)
+{
+ uvc_printk(KERN_INFO, "bmHint: 0x%04x\n", ctrl->bmHint);
+ uvc_printk(KERN_INFO, "bFormatIndex: %u\n", ctrl->bFormatIndex);
+ uvc_printk(KERN_INFO, "bFrameIndex: %u\n", ctrl->bFrameIndex);
+ uvc_printk(KERN_INFO, "dwFrameInterval: %u\n", ctrl->dwFrameInterval);
+ uvc_printk(KERN_INFO, "wKeyFrameRate: %u\n", ctrl->wKeyFrameRate);
+ uvc_printk(KERN_INFO, "wPFrameRate: %u\n", ctrl->wPFrameRate);
+ uvc_printk(KERN_INFO, "wCompQuality: %u\n", ctrl->wCompQuality);
+ uvc_printk(KERN_INFO, "wCompWindowSize: %u\n", ctrl->wCompWindowSize);
+ uvc_printk(KERN_INFO, "wDelay: %u\n", ctrl->wDelay);
+ uvc_printk(KERN_INFO, "dwMaxVideoFrameSize: %u\n", ctrl->dwMaxVideoFrameSize);
+ uvc_printk(KERN_INFO, "dwMaxPayloadTransferSize: %u\n", ctrl->dwMaxPayloadTransferSize);
+ uvc_printk(KERN_INFO, "dwClockFrequency: %u\n", ctrl->dwClockFrequency);
+ uvc_printk(KERN_INFO, "bmFramingInfo: 0x%02x\n", ctrl->bmFramingInfo);
+ uvc_printk(KERN_INFO, "bPreferedVersion: %u\n", ctrl->bPreferedVersion);
+ uvc_printk(KERN_INFO, "bMinVersion: %u\n", ctrl->bMinVersion);
+ uvc_printk(KERN_INFO, "bMaxVersion: %u\n", ctrl->bMaxVersion);
+}
/* ------------------------------------------------------------------------
* UVC Controls
@@ -159,6 +179,8 @@
ctrl->bMaxVersion = 0;
}
+ uvc_printk(KERN_INFO, "uvc_get_video_ctrl(%d, %u)\n", probe, query);
+ uvc_print_video_ctrl(ctrl);
/* Some broken devices return a null or wrong dwMaxVideoFrameSize.
* Try to get the value from the format and frame descriptor.
*/
@@ -176,6 +198,9 @@
__u8 *data;
__u16 size;
int ret;
+
+ uvc_printk(KERN_INFO, "uvc_set_video_ctrl(%d)\n", probe);
+ uvc_print_video_ctrl(ctrl);
size = video->dev->uvc_version >= 0x0110 ? 34 : 26;
data = kzalloc(size, GFP_KERNEL);
_______________________________________________
Linux-uvc-devel mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/linux-uvc-devel