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 659606 - Remaining non-subset caps warnings
Remaining non-subset caps warnings
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
git master
Other Linux
: Normal blocker
: 0.10.36
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2011-09-20 15:33 UTC by Vincent Penquerc'h
Modified: 2011-11-24 10:16 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
file triggering the warnings (64.00 KB, audio/ogg)
2011-09-20 15:43 UTC, Vincent Penquerc'h
  Details
kate: forward return code from setting src pad caps (1.06 KB, patch)
2011-09-20 15:56 UTC, Vincent Penquerc'h
committed Details | Review

Description Vincent Penquerc'h 2011-09-20 15:33:56 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 ]
Comment 1 Vincent Penquerc'h 2011-09-20 15:43:16 UTC
Created attachment 197078 [details]
file triggering the warnings
Comment 2 Vincent Penquerc'h 2011-09-20 15:56:02 UTC
Created attachment 197079 [details] [review]
kate: forward return code from setting src pad caps
Comment 3 Vincent Penquerc'h 2011-09-20 15:57:31 UTC
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.
Comment 4 Vincent Penquerc'h 2011-09-20 16:08:45 UTC
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 5 Sebastian Dröge (slomo) 2011-09-21 12:00:43 UTC
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
Comment 6 Sebastian Dröge (slomo) 2011-09-21 12:03:43 UTC
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?
Comment 7 Sebastian Dröge (slomo) 2011-09-21 12:51:59 UTC
Confirmed with tiger and the attached file
Comment 8 Sebastian Dröge (slomo) 2011-09-23 14:11:10 UTC
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...
Comment 9 Sebastian Dröge (slomo) 2011-10-10 08:12:48 UTC
Marking as blocker, the warning should probably be removed for next release unless a threadsafe solution for this is found.
Comment 10 Sebastian Dröge (slomo) 2011-10-10 08:13:07 UTC
It should also be removed from 0.11 for the same reason
Comment 11 Sebastian Dröge (slomo) 2011-11-24 10:16:28 UTC
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.