GNOME Bugzilla – Bug 568142
UVC logitech webcams not working
Last modified: 2009-01-18 08:53:01 UTC
Please describe the problem: Problems using UVC webcams from Logitech - Quickcam 9000, some Quickcam for Mac id 046d:09a6. Cheese/gst opens, webcam light appears, complains about returned video capabilities: 0:00:12.124486980 10708 0x8aff7c0 ERROR GST_CAPS gstpad.c:2025:gst_pad_get_caps_unlocked:<video_source:src> pad returned caps video/x-raw-yuv, format=(fourcc)YUY2, width=(int)160, height=(int)120, framerate=(fraction){ 22/1, 20/1, 15/1, 10/1, 5/1 }; video/x-raw-yuv, format=(fourcc)YUY2, width=(int)176, height=(int)144, framerate=(fraction){ 22/1, 20/1, 15/1, 10/1, 5/1 }; video/x-raw-yuv, format=(fourcc)YUY2, width=(int)320, height=(int)240, framerate=(fraction){ 22/1, 20/1, 15/1, 10/1, 5/1 }; video/x-raw-yuv, format=(fourcc)YUY2, width=(int)352, height=(int)288, framerate=(fraction){ 22/1, 20/1, 15/1, 10/1, 5/1 }; video/x-raw-yuv, format=(fourcc)YUY2, width=(int)640, height=(int)480, framerate=(fraction){ 22/1, 20/1, 15/1, 10/1, 5/1 }; video/x-raw-yuv, format=(fourcc)I420, width=(int)160, height=(int)120, framerate=(fraction){ 22/1, 20/1, 15/1, 10/1, 5/1 }; video/x-raw-yuv, format=(fourcc)I420, width=(int)176, height=(int)144; video/x-raw-yuv, format=(fourcc)I420, width=(int)320, height=(int)240; video/x-raw-yuv, format=(fourcc)I420, width=(int)352, height=(int)288; video/x-raw-yuv, format=(fourcc)I420, width=(int)640, height=(int)480; video/x-raw-yuv, format=(fourcc)YV12, width=(int)160, height=(int)120, framerate=(fraction){ 22/1, 20/1, 15/1, 10/1, 5/1 }; video/x-raw-yuv, format=(fourcc)YV12, width=(int)176, height=(int)144; video/x-raw-yuv, format=(fourcc)YV12, width=(int)320, height=(int)240; video/x-raw-yuv, format=(fourcc)YV12, width=(int)352, height=(int)288; video/x-raw-yuv, format=(fourcc)YV12, width=(int)640, height=(int)480; video/x-raw-rgb, bpp=(int)24, depth=(int)24, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, endianness=(int)4321, width=(int)160, height=(int)120, framerate=(fraction){ 22/1, 20/1, 15/1, 10/1, 5/1 }; video/x-raw-rgb, bpp=(int)24, depth=(int)24, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, endianness=(int)4321, width=(int)176, height=(int)144; video/x-raw-rgb, bpp=(int)24, depth=(int)24, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, endianness=(int)4321, width=(int)320, height=(int)240; video/x-raw-rgb, bpp=(int)24, depth=(int)24, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, endianness=(int)4321, width=(int)352, height=(int)288; video/x-raw-rgb, bpp=(int)24, depth=(int)24, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, endianness=(int)4321, width=(int)640, height=(int)480; video/x-raw-rgb, bpp=(int)24, depth=(int)24, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, endianness=(int)4321, width=(int)160, height=(int)120, framerate=(fraction){ 22/1, 20/1, 15/1, 10/1, 5/1 }; video/x-raw-rgb, bpp=(int)24, depth=(int)24, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, endianness=(int)4321, width=(int)176, height=(int)144; video/x-raw-rgb, bpp=(int)24, depth=(int)24, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, endianness=(int)4321, width=(int)320, height=(int)240; video/x-raw-rgb, bpp=(int)24, depth=(int)24, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, endianness=(int)4321, width=(int)352, height=(int)288; video/x-raw-rgb, bpp=(int)24, depth=(int)24, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, endianness=(int)4321, width=(int)640, height=(int)480 which are not a real subset of its template caps video/x-raw-rgb, bpp=(int)8, depth=(int)8, red_mask=(int)224, green_mask=(int)28, blue_mask=(int)3, endianness=(int)1234, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-rgb, bpp=(int)16, depth=(int)15, red_mask=(int)31744, green_mask=(int)992, blue_mask=(int)31, endianness=(int)1234, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-rgb, bpp=(int)16, depth=(int)16, red_mask=(int)63488, green_mask=(int)2016, blue_mask=(int)31, endianness=(int)1234, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-rgb, bpp=(int)16, depth=(int)15, red_mask=(int)31744, green_mask=(int)992, blue_mask=(int)31, endianness=(int)4321, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-rgb, bpp=(int)16, depth=(int)16, red_mask=(int)63488, green_mask=(int)2016, blue_mask=(int)31, endianness=(int)4321, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, endianness=(int)4321, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, endianness=(int)4321, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, endianness=(int)4321, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, endianness=(int)4321, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-yuv, format=(fourcc)YVU9, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-yuv, format=(fourcc)YV12, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-yuv, format=(fourcc)YUY2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-yuv, format=(fourcc)Y42B, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-yuv, format=(fourcc)Y41B, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-yuv, format=(fourcc)Y41P, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-yuv, format=(fourcc)NV12, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-yuv, format=(fourcc)NV21, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-yuv, format=(fourcc)YUV9, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-bayer, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-dv, systemstream=(boolean)true, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-sonix, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ] (cheese:10708): GStreamer-WARNING **: pad video_source:src returned caps which are not a real subset of its template caps ... (cheese:10708): GStreamer-WARNING **: pad video_source:src returned caps which are not a real subset of its template caps 0:00:12.735126531 10708 0x8aff7c0 WARN v4l2src v4l2src_calls.c:1298:gst_v4l2src_set_capture:<video_source> error: Device '/dev/video0' cannot capture at 640x480 0:00:12.735808532 10708 0x8aff7c0 WARN v4l2src v4l2src_calls.c:1298:gst_v4l2src_set_capture:<video_source> error: Tried to capture at 640x480, but device returned size 160x120 0:00:12.736034468 10708 0x8aff7c0 INFO GST_ERROR_SYSTEM gstelement.c:1675:gst_element_message_full:<video_source> posting message: Device '/dev/video0' cannot capture at 640x480 0:00:12.736375294 10708 0x8aff7c0 INFO GST_ERROR_SYSTEM gstelement.c:1698:gst_element_message_full:<video_source> posted error message: Device '/dev/video0' cannot capture at 640x480 0:00:12.738970456 10708 0x8aff7c0 WARN bin gstbin.c:2083:do_bin_latency:<pipeline> failed to query latency and then the Quickcam turns off and no video picture appears. I can get the 9000 to work intermittently on Intrepid if I run luvcview which works fine, then gstreamer-properties and select the USB audio and UVC video. The Mac quickcam exhibits the same behavior except that the video works in the test in gstreamer-properties (though it selects the max resolution of 1600x1200, so this appears to be a problem with how cheese is interpreting the capabilities information or it not setting up the audio correctly. Steps to reproduce: 1. Connect webcam 2. Launch Cheese 3. Actual results: See description Expected results: I would expect to get video. Does this happen every time? Yes. Other information: I will attach similar debug output from test with Quickcam 9000.
It's a known issue, if you're using Ubuntu you should be able to fix it upgrading kernel and libv4l from intrepid-proposed repository. Otherwise upgrade libv4l and uvcvideo from your distribution package manager. *** This bug has been marked as a duplicate of 566212 ***