Hi Tom, On Tuesday 24 February 2009 12:51:47 Tom Moore wrote: > Hi all, > > I wrote some capture code and tested it out on Ubuntu 8.10 (kernel > 2.6.27.11). My Dynex 1.3 MP camera supports memory mapping and works > just fine on my Ubuntu box. However, I have cross-compiled the UVC > driver for my Gumstix (the target platform for capture - kernel is > 2.6.21) and though I was able to successfully install the driver, my > capture code doesn't seem to work. I've traced the problem to to ioctl > call with VIDIOC_QUERYBUF. On my box, that function call returns a > buffer length of width * height * 2 (format is YUYV, so this is right). > On my Gumstix, it returns width * height + 589 (the 589 is the same > regardless of the frame size). > > Is there any reason why this would be happening? I appear to be > unfamilar with the behavior of VIDIOC_QUERYBUF, but it looks like it > ought to be pretty straightforward.
None that I can think of (at least at this time of the night). Would you mind adding a few printk's to the driver code to hunt the bug down ? > Oh, I should point out that calls to VIDIOCSPICT and VIDIOCGPICT on my > Ubuntu box works just fine, but returns -1 for the Gumstix. The uvcvideo driver relies on the videodev compatibility layer to handle V4L1 ioctls. The Gumstix kernel might come with those disabled. > This camera requires that I use some bizarre combinations of V4L1 and V4L2 > code to access all of its functionality. I'm not sure what versions of the > various V4L modules and camera drivers are. That's definitely not normal. The uvcvideo driver implement V4L2 only. The V4L1 ioctls are translated to V4L2 ioctls by the videodev compatibility layer, there's no added functionality for the V4L1 API. Best regards, Laurent Pinchart _______________________________________________ Linux-uvc-devel mailing list [email protected] https://lists.berlios.de/mailman/listinfo/linux-uvc-devel
