[gst-devel] v4l2 strangeness

Raseel Bhagat raseelbhagat at gmail.com
Mon Oct 11 13:59:13 CEST 2010


On Mon, Oct 11, 2010 at 5:03 PM, Gary Thomas <gary at mlbassoc.com> wrote:

> Note: this *is* a duplicate of an email sent last week.  Does anyone have
> any ideas about this, please?  I really need to get this USB camera working
> on my embedded OMAP board... Thanks
>
> 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?
>


Since it's the 2.6.32 kernel, you obviously have the latest webcam driver
(either gspca or uvcvideo) as well.
The only other thing that might me older is the libv4l library.
Try updating the libv4l library with  "opkg update libv4l" . The latest
version I think is libv4l_0.6 .


Thanks,
Raseel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20101011/300167af/attachment.htm>


More information about the gstreamer-devel mailing list