GNOME Bugzilla – Bug 347918
Internal data flow error in udpsrc
Last modified: 2006-07-19 18:22:01 UTC
There is an Internal data flow error in element udpsrc in gst-plugins-good. Example: gst-launch udpsrc multicast-group="226.255.0.40" port=6000 ! application/x-rtp ! rtpmp4vdepay ( gst-launch is just used as proof of concept for this bug, parsing is good) Feedback given by the system is (level 3): Setting pipeline to PLAYING ... INFO (0x80519d8 - 0:00:03.007173000) GST_STATES(12007) gstbin.c(1935):gst_bin_change_state_func:<pipeline0> child 'fakesink0' is changing state asynchronously INFO (0x80519d8 - 0:00:03.007366000) GST_STATES(12007) gstelement.c(1946):gst_element_continue_state:<rtpmp4vdepay0> completed state change INFO (0x80519d8 - 0:00:03.007521000) GST_STATES(12007) gstbin.c(1930):gst_bin_change_state_func:<pipeline0> child 'rtpmp4vdepay0' changed state to 4(PLAYING) successfully INFO (0x80519d8 - 0:00:03.007662000) GST_STATES(12007) gstelement.c(1946):gst_element_continue_state:<capsfilter0> completed state change INFO (0x80519d8 - 0:00:03.007805000) GST_STATES(12007) gstbin.c(1930):gst_bin_change_state_func:<pipeline0> child 'capsfilter0' changed state to 4(PLAYING) successfully INFO (0x80519d8 - 0:00:03.007942000) GST_STATES(12007) gstelement.c(1946):gst_element_continue_state:<udpsrc0> completed state change INFO (0x80519d8 - 0:00:03.008086000) GST_STATES(12007) gstbin.c(1930):gst_bin_change_state_func:<pipeline0> child 'udpsrc0' changed state to 4(PLAYING) successfully New clock: GstSystemClock ** (gst-launch-0.10:12007): CRITICAL **: gst_base_rtp_depayload_chain: assertion `filter->clock_rate > 0' failed INFO (0x807dad8 - 0:00:03.009038000) basesrc(12007) gstbasesrc.c(1531):gst_base_src_loop:<udpsrc0> pausing after gst_pad_push() = -5 WARN (0x807dad8 - 0:00:03.009192000) basesrc(12007) gstbasesrc.c(1569):gst_base_src_loop:<udpsrc0> error: Internal data flow error. WARN (0x807dad8 - 0:00:03.009311000) basesrc(12007) gstbasesrc.c(1569):gst_base_src_loop:<udpsrc0> error: streaming task paused, reason error (-5) INFO (0x807dad8 - 0:00:03.009468000) GST_ERROR_SYSTEM(12007) gstelement.c(1500):gst_element_message_full:<udpsrc0> posting message: Internal data flow error. ERROR: from element /pipeline0/udpsrc0: Internal data flow error. Additional debug info: gstbasesrc.c(1569): gst_base_src_loop (): /pipeline0/udpsrc0: streaming task paused, reason error (-5) Execution ended after 1755000 ns. Setting pipeline to PAUSED ... INFO (0x80519d8 - 0:00:03.010226000) GST_STATES(12007) gstbin.c(1935):gst_bin_change_state_func:<pipeline0> child 'fakesink0' is changing state asynchronously INFO (0x80519d8 - 0:00:03.010364000) GST_STATES(12007) gstelement.c(1946):gst_element_continue_state:<rtpmp4vdepay0> completed state change INFO (0x80519d8 - 0:00:03.010509000) GST_STATES(12007) gstbin.c(1930):gst_bin_change_state_func:<pipeline0> child 'rtpmp4vdepay0' changed state to 3(PAUSED) successfully INFO (0x80519d8 - 0:00:03.010664000) GST_STATES(12007) gstelement.c(1946):gst_element_continue_state:<capsfilter0> completed state change INFO (0x80519d8 - 0:00:03.010806000) GST_STATES(12007) gstbin.c(1930):gst_bin_change_state_func:<pipeline0> child 'capsfilter0' changed state to 3(PAUSED) successfully INFO (0x80519d8 - 0:00:03.010938000) GST_STATES(12007) gstelement.c(1946):gst_element_continue_state:<udpsrc0> completed state change INFO (0x80519d8 - 0:00:03.011077000) GST_STATES(12007) gstbin.c(1949):gst_bin_change_state_func:<pipeline0> child 'udpsrc0' changed state to 3(PAUSED) successfully without prerollINFO (0x80519d8 - 0:00:03.011219000) GST_STATES(12007) gstelement.c(1946):gst_element_continue_state:<pipeline0> completed state change INFO (0x80519d8 - 0:00:03.011361000) GST_STATES(12007) gstbin.c(1282):gst_bin_get_state_func:<pipeline0> getting state INFO (0x80519d8 - 0:00:03.011482000) GST_STATES(12007) gstbin.c(1321):gst_bin_recalc_state:<pipeline0> recalc state INFO (0x80519d8 - 0:00:03.011600000) GST_STATES(12007) gstbin.c(1331):gst_bin_recalc_state:<pipeline0> checking element states INFO (0x80519d8 - 0:00:03.011725000) GST_STATES(12007) gstelement.c(1937):gst_element_continue_state:<pipeline0> nothing pending INFO (0x80519d8 - 0:00:03.011842000) GST_STATES(12007) gstbin.c(1420):gst_bin_recalc_state:<pipeline0> bin RETURN is now 3 Setting pipeline to READY ... INFO (0x80519d8 - 0:00:03.012104000) GST_STATES(12007) gstelement.c(1946):gst_element_continue_state:<fakesink0> completed state change INFO (0x80519d8 - 0:00:03.012248000) GST_STATES(12007) gstbin.c(1930):gst_bin_change_state_func:<pipeline0> child 'fakesink0' changed state to 2(READY) successfully I
Created attachment 69117 [details] Level 4 debug info about the bug This is the level 4 debuginfo generated with this bug.
I see that splinux@fedoraproject.org changed the status to NEEDINFO without leaving a message what info he need... Can someone confirm that there is more info needed? And what is missing?
It seems ok, the caps for application/x-rtp are incomplete (the clockrate is missing, for example). The depayloader should not generate a critical and GST_FLOW_ERROR but just a GST_FLOW_NOT_NEGOTIATED instead.
* gst-libs/gst/rtp/gstbasertpdepayload.c: (gst_base_rtp_depayload_chain), (gst_base_rtp_depayload_change_state): Don't assert when not negotiated but post a meaningfull error message. Fixes #347918. * gst-libs/gst/rtp/gstbasertppayload.c: Add comment about better default MTU size. * gst-libs/gst/rtp/gstrtpbuffer.c: (gst_rtp_buffer_validate_data): Small cleanups, start docs.