v4l2 strangeness

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

v4l2 strangeness

Gary Thomas
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
------------------------------------------------------------

------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: v4l2 strangeness

Marco Ballesio
Hi,

On Fri, Oct 8, 2010 at 5:42 PM, Gary Thomas <[hidden email]> wrote:
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.

 
..snip..
 
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)

..snip..
 
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?

the debug log is pretty self-explanatory: the webcam is using different color formats wrt different architectures. Assuming the webcam sensor/phy are the same and the bus used is the same (USB), I'd give a check on the differences in the kernel module between the two releases (2.6.32 / 2.6.34). It's also possible that the driver has some compilation flags which use different paths wrt ARM or x86.

Regards

------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel