gdppay / gdpdepay usage
Vasilis Liaskovitis
vliaskov at gmail.com
Thu May 29 06:45:57 PDT 2014
Hi,
I have an issue using gdppay/gdpdepay and shmsink/shmsrc. The writer side uses
uridecodebin and then gdppay and shmsink. On the reader side "could not create
caps from GDP packet":
writer:
GST_DEBUG=3 gst-launch-1.0 uridecodebin uri=file:////opt/Videos/test.avi !
gdppay ! shmsink socket-path=/tmp/test shm-size=100000000
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Redistribute latency...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
reader:
GST_DEBUG=3 gst-launch-1.0 shmsrc socket-path=/tmp/test20 is-live=1 ! gdpdepay ! xvimagesink
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
0:00:00.020068273 4755 0x919e80 FIXME default
gstutils.c:3648:gst_pad_create_stream_id_printf_valist:<shmsrc0:src> Creating
random stream-id, consider implementing a deterministic way of creating a stream-id
Setting pipeline to PLAYING ...
New clock: GstSystemClock
0:00:00.020511645 4755 0x919e80 WARN structure
gststructure.c:2289:priv_gst_structure_parse_fields: Failed to find delimiter, r=
0:00:00.020539229 4755 0x919e80 WARN gdpdepay
gstgdpdepay.c:436:gst_gdp_depay_chain:<gdpdepay0> error: could not create caps from GDP packet
0:00:00.020580462 4755 0x919e80 WARN basesrc
gstbasesrc.c:2865:gst_base_src_loop:<shmsrc0> error: Internal data flow error.
0:00:00.020587848 4755 0x919e80 WARN basesrc
gstbasesrc.c:2865:gst_base_src_loop:<shmsrc0> error: streaming task paused, reason error (-5)
ERROR: from element /GstPipeline:pipeline0/GstGDPDepay:gdpdepay0: Could not decode stream.
Additional debug info:
gstgdpdepay.c(436): gst_gdp_depay_chain ():
/GstPipeline:pipeline0/GstGDPDepay:gdpdepay0:
could not create caps from GDP packet
Execution ended after 0:00:00.000298702
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
I also inserted a videoconvert/capsfilter on writer side before gdppay, but in
this case I get a GST_FLOW_NOT_NEGOTIATED error.
writer:
GST_DEBUG=3 gst-launch-1.0 uridecodebin uri=file:////opt/Videos/test.avi !
videoconvert ! video/x-raw, format="RGBA" ! gdppay ! shmsink
socket-path=/tmp/test shm-size=100000000
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Redistribute latency...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
reader:
GST_DEBUG=3 gst-launch-1.0 shmsrc socket-path=/tmp/test is-live=1 ! gdpdepay ! xvimagesink
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
0:00:00.018524155 4795 0x12d7e80 FIXME default
gstutils.c:3648:gst_pad_create_stream_id_printf_valist:<shmsrc0:src> Creating
random stream-id, consider implementing a deterministic way of creating a
stream-id
Setting pipeline to PLAYING ...
New clock: GstSystemClock
(gst-launch-1.0:4795): GStreamer-WARNING **:
gstpad.c:4555:store_sticky_event:<gdpdepay0:src> Sticky event misordering, got
'segment' before 'caps'
(gst-launch-1.0:4795): GStreamer-WARNING **: gst_structure_from_string did not consume whole string, but caller
did not provide end pointer
("GstEventStreamStart,
stream-id=(string)a79153c13a7e78a6cf674639f28e81f8db0fa20c4ac7caacde49ea7a68f47502/001,
flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1;\u0001")
(gst-launch-1.0:4795): GStreamer-WARNING **:
gstpad.c:4555:store_sticky_event:<gdpdepay0:src> Sticky event misordering, got 'caps' before 'stream-start'
(gst-launch-1.0:4795): GStreamer-WARNING **:
gstpad.c:4555:store_sticky_event:<xvimagesink0:sink> Sticky event misordering, got 'segment' before 'stream-start'
0:00:00.022704341 4795 0x12d7e80 WARN gdpdepay
gstgdpdepay.c:430:gst_gdp_depay_chain:<gdpdepay0> pushing depayloaded buffer returned -4
0:00:00.022738811 4795 0x12d7e80 WARN basesrc
gstbasesrc.c:2865:gst_base_src_loop:<shmsrc0> error: Internal data flow error.
0:00:00.022745888 4795 0x12d7e80 WARN basesrc
gstbasesrc.c:2865:gst_base_src_loop:<shmsrc0> error: streaming task paused, reason not-negotiated (-4)
ERROR: from element /GstPipeline:pipeline0/GstShmSrc:shmsrc0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2865): gst_base_src_loop ():
/GstPipeline:pipeline0/GstShmSrc:shmsrc0:
streaming task paused, reason not-negotiated (-4)
Execution ended after 0:00:00.004142949
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
How should caps be correctly inserted in gdppay?
On the other hand if the writer pipeline starts with videotessrc, reader seems to
display the video fine, although there is "no caps in config" on writer side, and
there's a critical message on the reader side about an invalid GstStructure:
writer:
GST_DEBUG=3 gst-launch-1.0 videotestsrc ! gdppay ! shmsink
socket-path=/tmp/test
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
0:00:00.020837375 7582 0x2009d40 FIXME default
gstutils.c:3648:gst_pad_create_stream_id_printf_valist:<videotestsrc0:src>
Creating random stream-id, consider implementing a deterministic way of creating a stream-id
0:00:00.021066001 7582 0x2009d40 WARN default
gstvideopool.c:171:video_buffer_pool_set_config:<videobufferpool0> no caps in config
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
reader:
GST_DEBUG=3 gst-launch-1.0 shmsrc socket-path=/tmp/test17 is-live=1 ! gdpdepay
! xvimagesink
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
0:00:00.023007447 4716 0x1cb1e80 FIXME default
gstutils.c:3648:gst_pad_create_stream_id_printf_valist:<shmsrc0:src> Creating
random stream-id, consider implementing a deterministic way of creating a stream-id
Setting pipeline to PLAYING ...
New clock: GstSystemClock
(gst-launch-1.0:4716): GStreamer-WARNING **:
gstpad.c:4555:store_sticky_event:<gdpdepay0:src> Sticky event misordering, got 'segment' before 'caps'
(gst-launch-1.0:4716): GStreamer-WARNING **:
gstpad.c:4555:store_sticky_event:<xvimagesink0:sink> Sticky event misordering, got 'segment' before 'caps'
0:00:00.023990018 4716 0x1cb1e80 WARN structure
gststructure.c:2131:gst_structure_parse_field: failed to parse value
group-id=(uin
0:00:00.024001812 4716 0x1cb1e80 WARN structure
gststructure.c:2299:priv_gst_structure_parse_fields: Failed to parse field, r=group-id=(uin
(gst-launch-1.0:4716): GStreamer-WARNING **:
gstpad.c:4555:store_sticky_event:<gdpdepay0:src> Sticky event misordering, got 'caps' before 'stream-start'
(gst-launch-1.0:4716): GStreamer-CRITICAL **: gst_structure_id_get: assertion 'GST_IS_STRUCTURE (structure)' failed
0:00:00.024037886 4716 0x1cb1e80 FIXME basesink
gstbasesink.c:3022:gst_base_sink_default_event:<xvimagesink0> stream-start event
without group-id. Consider implementing group-id handling in the upstream elements
(gst-launch-1.0:4716): GStreamer-WARNING **:
gstpad.c:4555:store_sticky_event:<xvimagesink0:sink> Sticky event misordering, got 'caps' before 'stream-start'
I am using gstreamer1.0-0 (1.2.3-1 package on ubuntu 14.04), but I can also try master.
thanks,
- Vasilis
More information about the gstreamer-devel
mailing list