GNOME Bugzilla – Bug 659606
Remaining non-subset caps warnings
Last modified: 2011-11-24 10:16:28 UTC
From gst-launch playbin2 uri=file://`pwd`/foo.ogg: Setting pipeline to PAUSED ... Pipeline is PREROLLING ... (gst-launch-0.10:12799): GStreamer-WARNING **: pad vconv:sink accepted caps 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)540, height=(int)432, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)64/45 although they are not a subset of its caps video/x-raw-yuv, format=(fourcc)YUY2, width=(int)[ 1, 2048 ], height=(int)[ 1, 2048 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)YV12, width=(int)[ 1, 2048 ], height=(int)[ 1, 2048 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 2048 ], height=(int)[ 1, 2048 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)[ 1, 2048 ], height=(int)[ 1, 2048 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)XVMC, width=(int)[ 1, 2048 ], height=(int)[ 1, 2048 ], framerate=(fraction)[ 0/1, 2147483647/1 ] (gst-launch-0.10:12799): GStreamer-WARNING **: pad vqueue:sink accepted caps 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)540, height=(int)432, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)64/45 although they are not a subset of its caps video/x-raw-yuv, format=(fourcc)YUY2, width=(int)[ 1, 2048 ], height=(int)[ 1, 2048 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)YV12, width=(int)[ 1, 2048 ], height=(int)[ 1, 2048 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 2048 ], height=(int)[ 1, 2048 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)[ 1, 2048 ], height=(int)[ 1, 2048 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)XVMC, width=(int)[ 1, 2048 ], height=(int)[ 1, 2048 ], framerate=(fraction)[ 0/1, 2147483647/1 ] Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstPulseSinkClock Caught interrupt -- handling interrupt. Interrupt: Stopping pipeline ... Execution ended after 1999763124 ns. Setting pipeline to PAUSED ... Setting pipeline to READY ... (gst-launch-0.10:12799): GStreamer-WARNING **: pad vbin:sink accepted caps 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)540, height=(int)432, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)64/45 although they are not a subset of its caps video/x-raw-yuv, format=(fourcc)YUY2, width=(int)[ 1, 2048 ], height=(int)[ 1, 2048 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)YV12, width=(int)[ 1, 2048 ], height=(int)[ 1, 2048 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 2048 ], height=(int)[ 1, 2048 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)[ 1, 2048 ], height=(int)[ 1, 2048 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)XVMC, width=(int)[ 1, 2048 ], height=(int)[ 1, 2048 ], framerate=(fraction)[ 0/1, 2147483647/1 ] (gst-launch-0.10:12799): GStreamer-WARNING **: pad src:proxypad31 accepted caps 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)540, height=(int)432, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)64/45 although they are not a subset of its caps video/x-raw-yuv, format=(fourcc)YUY2, width=(int)[ 1, 2048 ], height=(int)[ 1, 2048 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)YV12, width=(int)[ 1, 2048 ], height=(int)[ 1, 2048 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 2048 ], height=(int)[ 1, 2048 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)[ 1, 2048 ], height=(int)[ 1, 2048 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)XVMC, width=(int)[ 1, 2048 ], height=(int)[ 1, 2048 ], framerate=(fraction)[ 0/1, 2147483647/1 ] (gst-launch-0.10:12799): GStreamer-WARNING **: pad src:proxypad26 accepted caps 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)540, height=(int)432, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)64/45 although they are not a subset of its caps video/x-raw-yuv, format=(fourcc)YUY2, width=(int)[ 1, 2048 ], height=(int)[ 1, 2048 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)YV12, width=(int)[ 1, 2048 ], height=(int)[ 1, 2048 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 2048 ], height=(int)[ 1, 2048 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)[ 1, 2048 ], height=(int)[ 1, 2048 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)XVMC, width=(int)[ 1, 2048 ], height=(int)[ 1, 2048 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
Created attachment 197078 [details] file triggering the warnings
Created attachment 197079 [details] [review] kate: forward return code from setting src pad caps
Just an error being ignored, doesn't fix the issue, but I'm pretty sure that's at that call the problem happens. I get the warnings with xvimagesink, ximagesink, sdlvideosink, but not fakesink.
I just also saw those rgb/yuv vconv warnings on a MPEG file, so maybe not what I thought it was. Interesting 1x1 size. (totem:14789): GStreamer-WARNING **: pad vconv:src accepted caps 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, height=(int)1, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)1/1, interlaced=(boolean)true although they are not a subset of its caps video/x-raw-yuv, width=(int)720, height=(int)576, framerate=(fraction)25/1, format=(fourcc)I420, interlaced=(boolean)true, pixel-aspect-ratio=(fraction)64/45 (totem:14789): GStreamer-WARNING **: pad vconv:src accepted caps 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)652, height=(int)366, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)1/1, interlaced=(boolean)true although they are not a subset of its caps video/x-raw-yuv, width=(int)720, height=(int)576, framerate=(fraction)25/1, format=(fourcc)I420, interlaced=(boolean)true, pixel-aspect-ratio=(fraction)64/45
Comment on attachment 197079 [details] [review] kate: forward return code from setting src pad caps commit 70be630427c47c3e9cfe1d98b5e9487fd76444ac Author: Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> Date: Tue Sep 20 16:54:32 2011 +0100 kate: forward return code from setting src pad caps https://bugzilla.gnome.org/show_bug.cgi?id=659606
I don't get any warnings after your patch with the attached test file and all mpg files I tested. Could you attach one that gives warnings and explain how you played it?
Confirmed with tiger and the attached file
Probably a race condition between calling the acceptcaps function in gst_pad_accept_caps() and getting the downstream caps for the subset check. The downstream caps could have changed in the time between and I have no idea how to make the subset check race free here...
Marking as blocker, the warning should probably be removed for next release unless a threadsafe solution for this is found.
It should also be removed from 0.11 for the same reason
commit 0280a3c29ffbc33665fa25ae001e91c9a44b801e Author: Sebastian Dröge <sebastian.droege@collabora.co.uk> Date: Thu Nov 24 11:15:29 2011 +0100 pad: Remove g_warning() if pad accepted caps that are not a subset of the pad caps This check is correct but unfortunately it's impossible to implement in a threadsafe way because the caps could have changed in the meantime. Fixes bug #659606.