After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 343031 - v4l2src caps negotion is faulty
v4l2src caps negotion is faulty
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal normal
: 0.10.4
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2006-05-26 14:52 UTC by Stefan Sauer (gstreamer, gtkdoc dev)
Modified: 2006-08-24 06:29 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Stefan Sauer (gstreamer, gtkdoc dev) 2006-05-26 14:52:29 UTC
This works:
gst-launch-0.10 v4l2src ! videoscale ! video/x-raw-yuv,width=320,height=240 ! ximagesink

while this creates output like that of a broken analog tv (picture moves around)

gst-launch-0.10 v4l2src ! videoscale ! video/x-raw-rgb,width=320,height=240 ! ximagesink
Comment 1 Edgard Lima 2006-05-26 21:00:21 UTC
Im not sure this is really a BUG:

The following two pipelines works fine for me:

gst-launch-0.10 v4l2src ! videoscale ! video/x-raw-rgb,width=320,height=240 ! ffmpegcolorspace !  ximagesink

and 

gst-launch-0.10 v4l2src ! video/x-raw-rgb,width=320,height=240 ! ffmpegcolorspace ! ximagesink

While the following one:

gst-launch-0.10 --gst-debug=*:5 v4l2src ! video/x-raw-rgb ! ximagesink

shows: ERROR: from element /pipeline0/v4l2src0: Could not negotiate format

I suppose it is because caps are not compatible, see:

caps of src: video/x-raw-yuv, format=(fourcc)UYVY, width=(int)[ 48, 640 ], height=(int)[ 32, 480 ], framerate=(fraction)30000/1001; video/x-raw-yuv, format=(fourcc)YUY2, width=(int)[ 48, 640 ], height=(int)[ 32, 480 ], framerate=(fraction)30000/1001; 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)[ 48, 640 ], height=(int)[ 32, 480 ], framerate=(fraction)30000/1001; 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)[ 48, 640 ], height=(int)[ 32, 480 ], framerate=(fraction)30000/1001; 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)[ 48, 640 ], height=(int)[ 32, 480 ], framerate=(fraction)30000/1001; 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)[ 48, 640 ], height=(int)[ 32, 480 ], framerate=(fraction)30000/1001; 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)[ 48, 640 ], height=(int)[ 32, 480 ], framerate=(fraction)30000/1001; 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)[ 48, 640 ], height=(int)[ 32, 480 ], framerate=(fraction)30000/1001; 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)[ 48, 640 ], height=(int)[ 32, 480 ], framerate=(fraction)30000/1001

caps of peer: video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], pixel-aspect-ratio=(fraction)1/1

so, there is no intersection: gstbasesrc.c(1586):gst_base_src_default_negotiate:<v4l2src0> intersect: EMPTY


Comment 2 Edgard Lima 2006-08-24 00:51:00 UTC
What you have reported is not a v4l2src bug (since you are using videoscale).

BTW: I have just fixed some set_caps bugs. Now the caps will be set to the width and height the driver is really working with.

Stefan, please confirm what I'm just saying and Thomas, please close this bug.