intervideosrc does not negociate when format is xRGB
jean-philippe
jean_philippe_arnaud at yahoo.fr
Mon Oct 14 16:27:02 UTC 2019
Hi,
I'm writing some test programs to better understand GStreamer.
I have a test program with two pipelines:
GstElement *pipe1 = gst_parse_launch ("videotestsrc !
video/x-raw,format=*xRGB*,width=320,height=240 ! intervideosink name=YYY
channel=camera sync=false", NULL);
GstElement *pipe2 = gst_parse_launch ("intervideosrc name=XXX
channel=camera ,width=320,height=240 ! autovideosink sync=false
async=false", NULL);
gst_element_set_state (pipe1, GST_STATE_PLAYING);
gst_element_set_state (pipe2, GST_STATE_PLAYING);
print_pad_capabilities(gst_bin_get_by_name(GST_BIN(pipe1), "YYY"),
"sink");
print_pad_capabilities(gst_bin_get_by_name(GST_BIN(pipe2), "XXX"),
"src");
When format=I420 or YV12 or YUV2 in the caps filter, pushing a GstSample
into the intervideosrc works fine.
However, when format is RGBx, xRGB or RGBA I get the output below.
Note, print_pad_capabilities() prints the current caps for a given pad (code
taken from here
<https://gstreamer.freedesktop.org/documentation/tutorials/basic/media-formats-and-pad-capabilities.html?gi-language=c>
.
So it looks like the intervideosrc does not accept the xRGB format. However
its pad template lists xRGB. I assume this is a software-only plugin, and so
its caps should not change depending on the h/w it runs on. So why does the
pad template list formats it does not support? Or should it support xRGB and
in which case what am I missing?
I presume specifying caps on pipe2's intervideosrc is unnecessary since the
two pipes are linked by the 'channel' property and presumably
auto-negotiate? Is this a correct assumption?
Caps for the sink pad:
video/x-raw
format: xRGB
width: 320
height: 240
framerate: 30/1
multiview-mode: mono
pixel-aspect-ratio: 1/1
interlace-mode: progressive
Caps for the src pad:
video/x-raw
format: xRGB
width: 320
height: 240
interlace-mode: progressive
multiview-mode: mono
multiview-flags:
0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono
pixel-aspect-ratio: 1/1
colorimetry: sRGB
framerate: [ 1/2147483647, 2147483647/1 ]
0:00:00.064149858 14969 0x555555826f70 WARN basesrc
gstbasesrc.c:3055:gst_base_src_loop:<XXX> error: Internal data stream error.
multiview-mode: mono
0:00:00.064154891 14969 0x555555826f70 WARN basesrc
gstbasesrc.c:3055:gst_base_src_loop:<XXX> error: streaming stopped, reason
not-negotiated (-4)
multiview-flags:
0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono
pixel-aspect-ratio: 1/1
colorimetry: sRGB
framerate: [ 1/2147483647, 2147483647/1 ]
ERROR: from element /GstPipeline:pipeline1/GstInterVideoSrc:XXX: Internal
data stream error.
Additional debug info:
gstbasesrc.c(3055): gst_base_src_loop ():
/GstPipeline:pipeline1/GstInterVideoSrc:XXX:
streaming stopped, reason not-negotiated (-4)
--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
More information about the gstreamer-devel
mailing list