GNOME Bugzilla – Bug 141285
hermescolorspace and xvimagesink do not capsnego properly together
Last modified: 2004-12-22 21:47:04 UTC
gst-launch-0.8 osssrc ! monoscope ! hermescolorspace ! xvimagesink reproduces this bug. however: gst-launch-0.8 osssrc ! monoscope ! ffmpegcolorspace ! xvimagesink is fine. Also gst-launch-0.8 osssrc ! monoscope ! hermescolorspace ! ximagesink is fine. To note, I am using the binary nvidia driver...I havent been able to test it on a non nvidia machine. Some debug output, it manages to capsengo successfully twice...but the third time (ie when pipeline has started, it fails). DEBUG GST_CAPS( 8286) gstelement.c(2797):gst_element_negotiate_pads:<monoscope0> perform negotiate for monoscope0:src and hermescolorspace0:sink DEBUG GST_CAPS( 8286) gstpad.c(2535):gst_pad_get_caps: get pad caps of monoscope0:src (0x81d1160) DEBUG GST_CAPS( 8286) gstpad.c(2557):gst_pad_get_caps: using pad template 0x8080998 with 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)256, height=(int)128, framerate=(double)[ 0, 1.7976931348623157e+308 ] DEBUG GST_CAPS( 8286) gstpad.c(2535):gst_pad_get_caps: get pad caps of hermescolorspace0:sink (0x8090a28) DEBUG GST_CAPS( 8286) gstpad.c(2540):gst_pad_get_caps: using pad getcaps function DEBUG GST_PROPERTIES( 8286) gstpad.c(2711):gst_pad_get_allowed_caps: hermescolorspace0:src: getting allowed caps DEBUG GST_CAPS( 8286) gstpad.c(2535):gst_pad_get_caps: get pad caps of xvimagesink0:sink (0x81d80d8) DEBUG GST_CAPS( 8286) gstpad.c(2540):gst_pad_get_caps: using pad getcaps function DEBUG GST_PROPERTIES( 8286) gstpad.c(2735):gst_pad_get_allowed_caps: hermescolorspace0:src: returning unfiltered intersection with peer DEBUG GST_PADS( 8286) gstpad.c(1258):gst_pad_link_negotiate: negotiating link from pad monoscope0:src to pad hermescolorspace0:sink DEBUG GST_PADS( 8286) gstpad.c(1083):gst_pad_link_intersect: intersecting link from monoscope0:src to hermescolorspace0:sink DEBUG GST_PADS( 8286) gstpad.c(1084):gst_pad_link_intersect: ... srccaps 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)256, height=(int)128, framerate=(double)[ 0, 1.7976931348623157e+308 ] DEBUG GST_PADS( 8286) gstpad.c(1085):gst_pad_link_intersect: ... sinkcaps EMPTY DEBUG GST_PADS( 8286) gstpad.c(1086):gst_pad_link_intersect: ... filtercaps (NULL) DEBUG GST_PADS( 8286) gstpad.c(1098):gst_pad_link_intersect: intersection EMPTY
hermescolorspace only does RGB to RGB, so this should not work, that's normal. ffmpegcolorspace can do RGB to YUV and thus can convert properly. ximagesink - as opposed to xvimagesink - accepts RGB and thus works too with hermescolorspace.