[gst-devel] v4l2 strangeness

Gary Thomas gary at mlbassoc.com
Fri Oct 8 16:42:04 CEST 2010


I have an old USB webcam (Logitech QuickCam Chat) that I'm
trying to use with v4l2src.  When I run it on slightly different
versions of Linux & gst-plugins, I get very different results.

On x86 Linux 2.6.30, gstreamer-0.10.25, gstreamer-plugins-good-0.10.16,
I get these:
   <v4l2src0> probed caps:
     video/x-raw-yuv, format=(fourcc)I420, framerate=(fraction)[ 0/1, 100/1 ], width=(int)[ 160, 352 ], height=(int)[ 120, 288 ];
     video/x-raw-yuv, format=(fourcc)YV12, framerate=(fraction)[ 0/1, 100/1 ], width=(int)[ 160, 352 ], height=(int)[ 120, 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, framerate=(fraction)[ 0/1, 100/1 ], 
width=(int)[ 160, 352 ], height=(int)[ 120, 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, framerate=(fraction)[ 0/1, 100/1 ], 
width=(int)[ 160, 352 ], height=(int)[ 120, 288 ]

On x86 Linux 2.6.34, gstreamer-0.10.30, gstreamer-plugins-good-0.10.25,
I get these:
   0:00:00.037755702 22728  0x9eec050 DEBUG                   v4l2 gstv4l2object.c:882:gst_v4l2_object_fill_format_list:<v4l2src0> getting src format enumerations
   0:00:00.037806177 22728  0x9eec050 INFO                    v4l2 gstv4l2object.c:919:gst_v4l2_object_fill_format_list:<v4l2src0> got 4 format(s):
   0:00:00.037831421 22728  0x9eec050 INFO                    v4l2 gstv4l2object.c:925:gst_v4l2_object_fill_format_list:<v4l2src0>   YU12 (emulated)
   0:00:00.037853538 22728  0x9eec050 INFO                    v4l2 gstv4l2object.c:925:gst_v4l2_object_fill_format_list:<v4l2src0>   YV12 (emulated)
   0:00:00.037886708 22728  0x9eec050 INFO                    v4l2 gstv4l2object.c:925:gst_v4l2_object_fill_format_list:<v4l2src0>   BGR3 (emulated)
   0:00:00.037908230 22728  0x9eec050 INFO                    v4l2 gstv4l2object.c:925:gst_v4l2_object_fill_format_list:<v4l2src0>   RGB3 (emulated)
   <v4l2src0> probed caps:
     video/x-raw-yuv, format=(fourcc)I420, width=(int)352, height=(int)288, framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-yuv, format=(fourcc)I420, width=(int)320, 
height=(int)240, framerate=(fraction)[ 0/1, 100/1 ];
     video/x-raw-yuv, format=(fourcc)I420, width=(int)176, height=(int)144, framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-yuv, format=(fourcc)I420, width=(int)160, 
height=(int)120, framerate=(fraction)[ 0/1, 100/1 ];
     video/x-raw-yuv, format=(fourcc)YV12, width=(int)352, height=(int)288, framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-yuv, format=(fourcc)YV12, width=(int)320, 
height=(int)240, framerate=(fraction)[ 0/1, 100/1 ];
     video/x-raw-yuv, format=(fourcc)YV12, width=(int)176, height=(int)144, framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-yuv, format=(fourcc)YV12, width=(int)160, 
height=(int)120, 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)352, height=(int)288, 
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)320, height=(int)240, 
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)176, height=(int)144, 
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)160, height=(int)120, 
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)352, height=(int)288, 
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)320, height=(int)240, 
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)176, height=(int)144, 
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)160, height=(int)120, 
framerate=(fraction)[ 0/1, 100/1 ]

On ARM Linux 2.6.32, gstreamer-0.10.30, gst-plugins-good-0.10.25,
I get this (but not useful) trace:
   0:00:00.180328399   741    0x15050 INFO                    v4l2 gstv4l2object.c:919:gst_v4l2_object_fill_format_list:<v4l2src0> got 2 format(s):
   0:00:00.180450469   741    0x15050 INFO                    v4l2 gstv4l2object.c:925:gst_v4l2_object_fill_format_list:<v4l2src0>   GBRG
   0:00:00.180603057   741    0x15050 INFO                    v4l2 gstv4l2object.c:925:gst_v4l2_object_fill_format_list:<v4l2src0>   S561
   0:00:00.180725127   741    0x15050 DEBUG                   v4l2 gstv4l2object.c:1151:gst_v4l2_object_v4l2fourcc_to_structure: Unknown fourcc 0x47524247 GBRG
   0:00:00.184051543   741    0x15050 DEBUG                v4l2src gstv4l2src.c:578:gst_v4l2src_get_caps:<v4l2src0> unknown format 1196573255
   0:00:00.184387236   741    0x15050 DEBUG                   v4l2 gstv4l2object.c:1151:gst_v4l2_object_v4l2fourcc_to_structure: Unknown fourcc 0x31363553 S561
   0:00:00.184509307   741    0x15050 DEBUG                v4l2src gstv4l2src.c:578:gst_v4l2src_get_caps:<v4l2src0> unknown format 825636179
   0:00:00.184661894   741    0x15050 INFO                 v4l2src gstv4l2src.c:584:gst_v4l2src_get_caps:<v4l2src0> probed caps: EMPTY

Same camera, same (+/- kernel version) kernel modules, vastly
different behaviour.  What gives?

More importantly, what do I need to do on my ARM system to get
useful caps out of this camera?
   * Kernel module settings/build options?
   * gst-plugins-good configuration?

Any help greatly appreciated

Thanks


-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------




More information about the gstreamer-devel mailing list