Hello again,

I re-compiled the driver with tracing enabled on pretty much everything, 
and below is the output I received from plugging in the camera and 
running my control program (the output from the uvccapture program is 
very similar). Why is the camera using the MJPEG format? On my desktop 
machine (Ubunto 8.10, kernel 2.6.27), I specify that I want the image 
format to be YUYV and it works fine. I'm even able to output .ppm files 
to disk. Does the camera support more than one format? Also, when I run 
uvccapture, the output file is about 8 KB for a 320x240 image, and it 
will not open in any standard image viewer.

Thanks,
Tom

==============================================================================
<6>Linux video capture interface: v2.00
<7>uvcvideo: Adding mapping Brightness to control 
00000000-0000-0000-0000-000000000101/2.
<7>uvcvideo: Adding mapping Contrast to control 
00000000-0000-0000-0000-000000000101/3.
<7>uvcvideo: Adding mapping Hue to control 
00000000-0000-0000-0000-000000000101/6.
<7>uvcvideo: Adding mapping Saturation to control 
00000000-0000-0000-0000-000000000101/7.
<7>uvcvideo: Adding mapping Sharpness to control 
00000000-0000-0000-0000-000000000101/8.
<7>uvcvideo: Adding mapping Gamma to control 
00000000-0000-0000-0000-000000000101/9.
<7>uvcvideo: Adding mapping Backlight Compensation to control 
00000000-0000-0000-0000-000000000101/1.
<7>uvcvideo: Adding mapping Gain to control 
00000000-0000-0000-0000-000000000101/4.
<7>uvcvideo: Adding mapping Power Line Frequency to control 
00000000-0000-0000-0000-000000000101/5.
<7>uvcvideo: Adding mapping Hue, Auto to control 
00000000-0000-0000-0000-000000000101/16.
<7>uvcvideo: Adding mapping Exposure, Auto to control 
00000000-0000-0000-0000-000000000001/2.
<7>uvcvideo: Adding mapping Exposure, Auto Priority to control 
00000000-0000-0000-0000-000000000001/3.
<7>uvcvideo: Adding mapping Exposure (Absolute) to control 
00000000-0000-0000-0000-000000000001/4.
<7>uvcvideo: Adding mapping White Balance Temperature, Auto to control 
00000000-0000-0000-0000-000000000101/11.
<7>uvcvideo: Adding mapping White Balance Temperature to control 
00000000-0000-0000-0000-000000000101/10.
<7>uvcvideo: Adding mapping White Balance Component, Auto to control 
00000000-0000-0000-0000-000000000101/13.
<7>uvcvideo: Adding mapping White Balance Blue Component to control 
00000000-0000-0000-0000-000000000101/12.
<7>uvcvideo: Adding mapping White Balance Red Component to control 
00000000-0000-0000-0000-000000000101/12.
<7>uvcvideo: Adding mapping Focus (absolute) to control 
00000000-0000-0000-0000-000000000001/6.
<7>uvcvideo: Adding mapping Focus, Auto to control 
00000000-0000-0000-0000-000000000001/8.
<7>uvcvideo: Adding mapping Zoom, Absolute to control 
00000000-0000-0000-0000-000000000001/11.
<7>uvcvideo: Adding mapping Zoom, Continuous to control 
00000000-0000-0000-0000-000000000001/12.
<7>uvcvideo: Adding mapping Privacy to control 
00000000-0000-0000-0000-000000000001/17.
<7>uvcvideo: Probing generic UVC device 2
<7>uvcvideo: Found format MJPEG.
<7>uvcvideo: - 640x480 (15.0 fps)
<7>uvcvideo: - 352x288 (30.0 fps)
<7>uvcvideo: - 320x240 (30.0 fps)
<7>uvcvideo: - 176x144 (30.0 fps)
<7>uvcvideo: - 160x120 (30.0 fps)
<7>uvcvideo: Found a Status endpoint (addr 83).
<6>uvcvideo: Found UVC 1.00 device Dynex 1.3MP Webcam (19ff:0102)
<7>uvcvideo: Added control 00000000-0000-0000-0000-000000000101/2 to 
device 2 entity 3
<7>uvcvideo: Added control 00000000-0000-0000-0000-000000000101/3 to 
device 2 entity 3
<7>uvcvideo: Added control 00000000-0000-0000-0000-000000000101/6 to 
device 2 entity 3
<7>uvcvideo: Added control 00000000-0000-0000-0000-000000000101/7 to 
device 2 entity 3
<7>uvcvideo: Added control 00000000-0000-0000-0000-000000000101/8 to 
device 2 entity 3
<7>uvcvideo: Added control 00000000-0000-0000-0000-000000000101/9 to 
device 2 entity 3
<7>uvcvideo: Added control 00000000-0000-0000-0000-000000000101/10 to 
device 2 entity 3
<7>uvcvideo: Added control 00000000-0000-0000-0000-000000000101/1 to 
device 2 entity 3
<7>uvcvideo: Added control 00000000-0000-0000-0000-000000000101/4 to 
device 2 entity 3
<7>uvcvideo: Added control 00000000-0000-0000-0000-000000000101/5 to 
device 2 entity 3
<7>uvcvideo: Added control 00000000-0000-0000-0000-000000000101/11 to 
device 2 entity 3
<7>uvcvideo: Added control 00000000-0000-0000-0000-000000000001/2 to 
device 2 entity 1
<7>uvcvideo: Added control 00000000-0000-0000-0000-000000000001/3 to 
device 2 entity 1
<7>uvcvideo: Added control 00000000-0000-0000-0000-000000000001/4 to 
device 2 entity 1
<7>uvcvideo: Added control 00000000-0000-0000-0000-000000000001/11 to 
device 2 entity 1
<7>uvcvideo: Added control 00000000-0000-0000-0000-000000000001/13 to 
device 2 entity 1
<7>uvcvideo: Scanning UVC chain: OT 2<4>videodev: "" has no release 
callback. Please fix your driver for proper sysfs support, see 
http://lwn.net/Articles/36850/
<6>input: Dynex 1.3MP Webcam as /class/input/input0
<7>uvcvideo: UVC device initialized.
<6>usbcore: registered new interface driver uvcvideo
<6>USB Video Class driver (v0.1.0)
<4>3:3:1: cannot get freq at ep 0x84



<7>uvcvideo: uvc_v4l2_open
<7>uvcvideo: Unknown ioctl 0x800e7606
<7>uvcvideo: Unknown ioctl 0x400e7607
<7>uvcvideo: Trying format 0x47504a4d (MJPG): 320x240.
<7>uvcvideo: Using default frame interval 33333.3 us (30.0 fps).
<7>uvcvideo: uvc_v4l2_mmap
<7>uvcvideo: uvc_v4l2_mmap
<7>uvcvideo: uvc_v4l2_mmap
<7>uvcvideo: uvc_v4l2_mmap
<7>uvcvideo: uvc_v4l2_mmap
<7>uvcvideo: uvc_v4l2_mmap
<7>uvcvideo: uvc_v4l2_mmap
<7>uvcvideo: uvc_v4l2_mmap
<7>uvcvideo: uvc_v4l2_mmap
<7>uvcvideo: uvc_v4l2_mmap
<7>uvcvideo: Queuing buffer 1.
<7>uvcvideo: uvc_v4l2_poll
<7>uvcvideo: Frame complete (EOF found).
<7>uvcvideo: uvc_v4l2_poll
<7>uvcvideo: Dequeuing buffer 1 (3, 17584 bytes).
<7>uvcvideo: Queuing buffer 2.
<7>uvcvideo: uvc_v4l2_poll
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Frame complete (EOF found).
<7>uvcvideo: uvc_v4l2_poll
<7>uvcvideo: Dequeuing buffer 2 (3, 17640 bytes).
<7>uvcvideo: Queuing buffer 3.
<7>uvcvideo: uvc_v4l2_poll
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Frame complete (EOF found).
<7>uvcvideo: uvc_v4l2_poll
<7>uvcvideo: Dequeuing buffer 3 (3, 17696 bytes).
<7>uvcvideo: uvc_v4l2_release
<7>uvcvideo: uvc_v4l2_open
<7>uvcvideo: Unknown ioctl 0x800e7606
<7>uvcvideo: Unknown ioctl 0x400e7607
<7>uvcvideo: Trying format 0x47504a4d (MJPG): 320x240.
<7>uvcvideo: Using default frame interval 33333.3 us (30.0 fps).
<7>uvcvideo: uvc_v4l2_mmap
<7>uvcvideo: uvc_v4l2_mmap
<7>uvcvideo: uvc_v4l2_mmap
<7>uvcvideo: uvc_v4l2_mmap
<7>uvcvideo: uvc_v4l2_mmap
<7>uvcvideo: uvc_v4l2_mmap
<7>uvcvideo: uvc_v4l2_mmap
<7>uvcvideo: uvc_v4l2_mmap
<7>uvcvideo: uvc_v4l2_mmap
<7>uvcvideo: uvc_v4l2_mmap
<7>uvcvideo: Queuing buffer 1.
<7>uvcvideo: uvc_v4l2_poll
<7>uvcvideo: Frame complete (EOF found).
<7>uvcvideo: uvc_v4l2_poll
<7>uvcvideo: Dequeuing buffer 1 (3, 16352 bytes).
<7>uvcvideo: Queuing buffer 2.
<7>uvcvideo: uvc_v4l2_poll
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Frame complete (EOF found).
<7>uvcvideo: uvc_v4l2_poll
<7>uvcvideo: Dequeuing buffer 2 (3, 10096 bytes).
<7>uvcvideo: Queuing buffer 3.
<7>uvcvideo: uvc_v4l2_poll
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Dropping payload (out of sync).
<7>uvcvideo: Frame complete (EOF found).
<7>uvcvideo: uvc_v4l2_poll
<7>uvcvideo: Dequeuing buffer 3 (3, 9720 bytes).
<7>uvcvideo: uvc_v4l2_release

==============================================================================



Laurent Pinchart wrote:
> 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

-- 

Tom Moore
Member, Engineering Staff
Lockheed Martin Advanced Technology Laboratories
3 Executive Campus, Suite 600
Cherry Hill, NJ 08002
Phone: 856-792-9750
E-mail: [email protected]

_______________________________________________
Linux-uvc-devel mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/linux-uvc-devel

Reply via email to