This post was updated on .
I am receiving a multicast udp ts stream in android using tutorial 3, this is my pipeline
data->pipeline = gst_parse_launch("udpsrc port=1235 multicast-group=227.2.2.2 ! decodebin ! autovideosink sync=false", &error); The video player works well but if send the application to background (Click home button, or another app appears on foreground) and the go back to the app android recreates the surfaceview but then gstreamer throws an this error: streaming stopped, reason not-linked (-1) and the stream cannot be played again. D/GStreamer+GST_SCHEDULING: 0:25:30.109395599 0x9d0ca260 gstpad.c:4209:gst_pad_chain_data_unchecked:<tsdemux2:sink> called chainfunction &0x9de44dd5 with buffer 0xae35a288, returned not-linked D/GStreamer+GST_SCHEDULING: 0:25:30.109415932 0x9d0ca260 gstpad.c:4209:gst_pad_chain_data_unchecked:<capsfilter8:sink> called chainfunction &gst_base_transform_chain with buffer 0xae35a288, returned not-linked I/GStreamer+basesrc: 0:25:30.109437182 0x9d0ca260 gstbasesrc.c:2860:gst_base_src_loop:<udpsrc2> pausing after gst_pad_push() = not-linked D/GStreamer+basesrc: 0:25:30.109454307 0x9d0ca260 gstbasesrc.c:2903:gst_base_src_loop:<udpsrc2> pausing task, reason not-linked D/GStreamer+GST_PADS: 0:25:30.109469849 0x9d0ca260 gstpad.c:6048:gst_pad_pause_task:<udpsrc2:src> pause task D/GStreamer+task: 0:25:30.109486474 0x9d0ca260 gsttask.c:687:gst_task_set_state:<udpsrc2:src> Changing task 0x99fd3418 to state 2 D/GStreamer+GST_EVENT: 0:25:30.109507307 0x9d0ca260 gstevent.c:305:gst_event_new_custom creating new event 0x9aeffe20 eos 28174 W/GStreamer+basesrc: 0:25:30.109529307 0x9d0ca260 gstbasesrc.c:2950:gst_base_src_loop:<udpsrc2> error: Internal data stream error. W/GStreamer+basesrc: 0:25:30.109544891 0x9d0ca260 gstbasesrc.c:2950:gst_base_src_loop:<udpsrc2> error: streaming stopped, reason not-linked (-1) D/GStreamer+GST_MESSAGE: 0:25:30.109566391 0x9d0ca260 gstelement.c:1859:gst_element_message_full_with_details:<udpsrc2> start I/GStreamer+GST_ERROR_SYSTEM: 0:25:30.109604641 0x9d0ca260 gstelement.c:1890:gst_element_message_full_with_details:<udpsrc2> posting message: Internal data stream error. V/GStreamer+GST_MESSAGE: 0:25:30.109629474 0x9d0ca260 gstmessage.c:300:gst_message_new_custom source udpsrc2: creating new message 0x9d0cf868 error W/GStreamer+structure: 0:25:30.109669516 0x9d0ca260 gststructure.c:1935:priv_gst_structure_append_to_gstring No value transform to serialize field 'gerror' of type 'GError' D/GStreamer+GST_BUS: 0:25:30.109651766 0x9d0ca260 gstbus.c:317:gst_bus_post:<bus20> [msg 0x9d0cf868] posting on bus error message: 0x9d0cf868, time 99:99:99.999999999, seq-num 1897, element 'udpsrc2', GstMessageError, gerror=(GError)NULL, debug=(string)"gstbasesrc.c\(2950\):\ gst_base_src_loop\ \(\):\ /GstPipeline:pipeline2/GstUDPSrc:udpsrc2:\012streaming\ stopped\,\ reason\ not-linked\ \(-1\)", details=(structure)"details\,\ flow-return\=\(int\)-1\;"; D/GStreamer+bin: 0:25:30.109731391 0x9d0ca260 gstbin.c:3728:gst_bin_handle_message_func:<pipeline2> [msg 0x9d0cf868] handling child udpsrc2 message of type error D/GStreamer+bin: 0:25:30.109751266 0x9d0ca260 gstbin.c:3735:gst_bin_handle_message_func:<pipeline2> got ERROR message, unlocking state change D/GStreamer+bin: 0:25:30.109769474 0x9d0ca260 gstbin.c:4065:gst_bin_handle_message_func:<pipeline2> posting message upward W/GStreamer+structure: 0:25:30.109796432 0x9d0ca260 gststructure.c:1935:priv_gst_structure_append_to_gstring No value transform to serialize field 'gerror' of type 'GError' D/GStreamer+GST_BUS: 0:25:30.109785849 0x9d0ca260 gstbus.c:317:gst_bus_post:<bus21> [msg 0x9d0cf868] posting on bus error message: 0x9d0cf868, time 99:99:99.999999999, seq-num 1897, element 'udpsrc2', GstMessageError, gerror=(GError)NULL, debug=(string)"gstbasesrc.c\(2950\):\ gst_base_src_loop\ \(\):\ /GstPipeline:pipeline2/GstUDPSrc:udpsrc2:\012streaming\ stopped\,\ reason\ not-linked\ \(-1\)", details=(structure)"details\,\ flow-return\=\(int\)-1\;"; D/GStreamer+GST_BUS: 0:25:30.109863266 0x9d0ca260 gstbus.c:356:gst_bus_post:<bus21> [msg 0x9d0cf868] pushing on async queue V/GStreamer+GST_POLL: 0:25:30.109887891 0x9d0ca260 gstpoll.c:289:raise_wakeup 0xae190508: raise D/GStreamer+GST_BUS: 0:25:30.109926932 0x9d0ca260 gstbus.c:359:gst_bus_post:<bus21> [msg 0x9d0cf868] pushed on async queue D/GStreamer+GST_BUS: 0:25:30.109946974 0x9d0ca260 gstbus.c:352:gst_bus_post:<bus20> [msg 0x9d0cf868] dropped V/GStreamer+GST_BUS: 0:25:30.109952849 0xb3136380 gstbus.c:521:gst_bus_timed_pop_filtered:<bus21> have 1 messages I/GStreamer+GST_ERROR_SYSTEM: 0:25:30.109963182 0x9d0ca260 gstelement.c:1917:gst_element_message_full_with_details:<udpsrc2> posted error message: Internal data stream error. V/GStreamer+GST_POLL: 0:25:30.109983182 0xb3136380 gstpoll.c:313:release_wakeup 0xae190508: release V/GStreamer+GST_PADS: 0:25:30.109985432 0x9d0ca260 gstpad.c:5098:store_sticky_event:<udpsrc2:src> stored sticky event eos D/GStreamer+GST_PADS: 0:25:30.110003057 0x9d0ca260 gstpad.c:3863:check_sticky:<udpsrc2:src> pushing all sticky events D/GStreamer+GST_BUS: 0:25:30.110007057 0xb3136380 gstbus.c:545:gst_bus_timed_pop_filtered:<bus21> got message 0x9d0cf868, error from udpsrc2, type mask is 4294967295 D/GStreamer+GST_PADS: 0:25:30.110019016 0x9d0ca260 gstpad.c:3795:push_sticky:<udpsrc2:src> event stream-start was already received D/GStreamer+GST_PADS: 0:25:30.110035724 0x9d0ca260 gstpad.c:3795:push_sticky:<udpsrc2:src> event segment was already received W/GStreamer+structure: 0:25:30.110047932 0xb3136380 gststructure.c:1935:priv_gst_structure_append_to_gstring No value transform to serialize field 'gerror' of type 'GError' V/GStreamer+GST_PADS: 0:25:30.110053682 0x9d0ca260 gstpad.c:5262:gst_pad_push_event_unchecked:<udpsrc2:src> sending event 0x9aeffe20 (eos) to peerpad <capsfilter8:sink> D/GStreamer+GST_EVENT: 0:25:30.110077141 0x9d0ca260 gstpad.c:5549:gst_pad_send_event_unchecked:<capsfilter8:sink> have event type eos event: 0x9aeffe20, time 99:99:99.999999999, seq-num 1874, (NULL) D/GStreamer+GST_BUS: 0:25:30.110033141 0xb3136380 gstbus.c:813:gst_bus_source_dispatch:<bus21> source 0x9d05b028 calling dispatch with error message: 0x9d0cf868, time 99:99:99.999999999, seq-num 1897, element 'udpsrc2', GstMessageError, gerror=(GError)NULL, debug=(string)"gstbasesrc.c\(2950\):\ gst_base_src_loop\ \(\):\ /GstPipeline:pipeline2/GstUDPSrc:udpsrc2:\012streaming\ stopped\,\ reason\ not-linked\ \(-1\)", details=(structure)"details\,\ flow-return\=\(int\)-1\;"; V/GStreamer+capsfilter: 0:25:30.110111099 0x9d0ca260 gstcapsfilter.c:520:gst_capsfilter_sink_event:<capsfilter8> Forwarding eos event V/GStreamer+GST_PADS: 0:25:30.110130599 0x9d0ca260 gstpad.c:5098:store_sticky_event:<capsfilter8:src> stored sticky event eos D/GStreamer+tutorial-3: 0:25:30.110132557 0xb3136380 jni/tutorial-3.c:91:set_ui_message Setting message to: Error received from element udpsrc2: Internal data stream error. D/GStreamer+GST_PADS: 0:25:30.110148057 0x9d0ca260 gstpad.c:3863:check_sticky:<capsfilter8:src> pushing all sticky events D/GStreamer+GST_PADS: 0:25:30.110163766 0x9d0ca260 gstpad.c:3795:push_sticky:<capsfilter8:src> event stream-start was already received D/GStreamer+GST_PADS: 0:25:30.110180641 0x9d0ca260 gstpad.c:3795:push_sticky:<capsfilter8:src> event caps was already received D/GStreamer+GST_PADS: 0:25:30.110197974 0x9d0ca260 gstpad.c:3795:push_sticky:<capsfilter8:src> event segment was already received V/GStreamer+GST_PADS: 0:25:30.110221891 0x9d0ca260 gstpad.c:5262:gst_pad_push_event_unchecked:<capsfilter8:src> sending event 0x9aeffe20 (eos) to peerpad <tsdemux2:sink> D/GStreamer+GST_STATES: 0:25:30.110242766 0xb3136380 gstelement.c:2570:gst_element_set_state_func:<pipeline2> set_state to NULL D/GStreamer+GST_EVENT: 0:25:30.110247391 0x9d0ca260 gstpad.c:5549:gst_pad_send_event_unchecked:<tsdemux2:sink> have event type eos event: 0x9aeffe20, time 99:99:99.999999999, seq-num 1874, (NULL) D/GStreamer+GST_STATES: 0:25:30.110267224 0xb3136380 gstelement.c:2595:gst_element_set_state_func:<pipeline2> setting target state to NULL D/GStreamer+mpegtsbase: 0:25:30.110281224 0x9d0ca260 mpegtsbase.c:1311:mpegts_base_sink_event:<tsdemux2> Got event eos D/GStreamer+GST_STATES: 0:25:30.110294266 0xb3136380 gstelement.c:2608:gst_element_set_state_func:<pipeline2> current PAUSED, old_pending VOID_PENDING, next VOID_PENDING, old return FAILURE D/GStreamer+tsdemux: 0:25:30.110309974 0x9d0ca260 tsdemux.c:2562:gst_ts_demux_push_pending_data:<tsdemux2:video_0_0100> stream:0xae1ecc00, pid:0x0100 stream_type:27 state:0 D/GStreamer+GST_STATES: 0:25:30.110323391 0xb3136380 gstelement.c:2642:gst_element_set_state_func:<pipeline2> intermediate: setting state from PAUSED to READY V/GStreamer+tsdemux: 0:25:30.110333724 0x9d0ca260 tsdemux.c:2565:gst_ts_demux_push_pending_data stream->data == NULL V/GStreamer+tsdemux: 0:25:30.110347016 0x9d0ca260 tsdemux.c:2785:gst_ts_demux_push_pending_data Resetting to EMPTY, returning ok D/GStreamer+pipeline: 0:25:30.110345641 0xb3136380 gstpipeline.c:305:reset_start_time:<pipeline2> reset start_time to 0 V/GStreamer+GST_PADS: 0:25:30.110368016 0x9d0ca260 gstpad.c:5098:store_sticky_event:<tsdemux2:video_0_0100> stored sticky event eos D/GStreamer+GST_STATES: 0:25:30.110368974 0xb3136380 gstbin.c:2863:gst_bin_change_state_func:<pipeline2> changing state of children from PAUSED to READY D/GStreamer+GST_PADS: 0:25:30.110393099 0x9d0ca260 gstpad.c:3863:check_sticky:<tsdemux2:video_0_0100> pushing all sticky events D/GStreamer+bin: 0:25:30.110394391 0xb3136380 gstbin.c:2900:gst_bin_change_state_func:<pipeline2> clearing all cached messages D/GStreamer+GST_PADS: 0:25:30.110409224 0x9d0ca260 gstpad.c:3795:push_sticky:<tsdemux2:video_0_0100> event stream-start was already received V/GStreamer+bin: 0:25:30.110410641 0xb3136380 gstbin.c:890:message_check looking at message 0x9c1b4e28: 1 D/GStreamer+GST_PADS: 0:25:30.110427474 0x9d0ca260 gstpad.c:3795:push_sticky:<tsdemux2:video_0_0100> event caps was already received D/GStreamer+bin: 0:25:30.110427599 0xb3136380 gstbin.c:988:bin_remove_messages:<decodebin2> deleting message 0x9c1b4e28 of type async-start (types 0xffffffff) D/GStreamer+GST_PADS: 0:25:30.110445724 0x9d0ca260 gstpad.c:3795:push_sticky:<tsdemux2:video_0_0100> event segment was already received V/GStreamer+GST_MESSAGE: 0:25:30.110452891 0xb3136380 gstmessage.c:207:_gst_message_free finalize message 0x9c1b4e28, async-start from decodebin2 D/GStreamer+GST_PADS: 0:25:30.110472141 0x9d0ca260 gstpad.c:3795:push_sticky:<tsdemux2:video_0_0100> event tag was already received V/GStreamer+bin: 0:25:30.110476266 0xb3136380 gstbin.c:890:message_check looking at message 0x9d0cfa78: 1 D/GStreamer+GST_PADS: 0:25:30.110490224 0x9d0ca260 gstpad.c:5318:gst_pad_push_event_unchecked:<tsdemux2:video_0_0100> Dropping event eos because pad is not linked D/GStreamer+bin: 0:25:30.110492849 0xb3136380 gstbin.c:988:bin_remove_messages:<autovideosink2> deleting message 0x9d0cfa78 of type async-start (types 0xffffffff) D/GStreamer+GST_PADS: 0:25:30.110511432 0x9d0ca260 gstpad.c:3834:push_sticky:<tsdemux2:video_0_0100> pad was not linked, mark pending V/GStreamer+GST_MESSAGE: 0:25:30.110515516 0xb3136380 gstmessage.c:207:_gst_message_free finalize message 0x9d0cfa78, async-start from autovideosink2 D/GStreamer+GST_PADS: 0:25:30.110527974 0x9d0ca260 gstpad.c:5623:gst_pad_send_event_unchecked:<tsdemux2:sink> sent event, ret ok D/GStreamer+bin: 0:25:30.110533516 0xb3136380 gstbin.c:2708:gst_bin_src_pads_activate:<pipeline2> deactivate pads V/GStreamer+GST_PADS: 0:25:30.110545557 0x9d0ca260 gstpad.c:5098:store_sticky_event:<tsdemux2:sink> stored sticky event eos D/GStreamer+bin: 0:25:30.110554974 0xb3136380 gstbin.c:2716:gst_bin_src_pads_activate:<pipeline2> pad deactivation successful V/GStreamer+GST_PADS: 0:25:30.110563141 0x9d0ca260 gstpad.c:5270:gst_pad_push_event_unchecked:<capsfilter8:src> sent event 0x9aeffe20 (eos) to peerpad <tsdemux2:sink>, ret ok D/GStreamer+bin: 0:25:30.110576016 0xb3136380 gstbin.c:2394:gst_bin_sort_iterator_resync:<pipeline2> resync D/GStreamer+GST_PADS: 0:25:30.110587099 0x9d0ca260 gstpad.c:3815:push_sticky:<capsfilter8:src> event eos marked received D/GStreamer+bin: 0:25:30.110594724 0xb3136380 gstbin.c:2180:add_to_queue:<pipeline2> adding 'autovideosink2' to queue D/GStreamer+GST_PADS: 0:25:30.110605307 0x9d0ca260 gstpad.c:5623:gst_pad_send_event_unchecked:<capsfilter8:sink> sent event, ret ok D/GStreamer+bin: 0:25:30.110614891 0xb3136380 gstbin.c:912:find_message:<pipeline2> no message found matching types 00001000 V/GStreamer+GST_PADS: 0:25:30.110622807 0x9d0ca260 gstpad.c:5098:store_sticky_event:<capsfilter8:sink> stored sticky event eos D/GStreamer+bin: 0:25:30.110632141 0xb3136380 gstbin.c:919:find_message:<pipeline2> structure-change V/GStreamer+GST_PADS: 0:25:30.110640599 0x9d0ca260 gstpad.c:5270:gst_pad_push_event_unchecked:<udpsrc2:src> sent event 0x9aeffe20 (eos) to peerpad <capsfilter8:sink>, ret ok D/GStreamer+bin: 0:25:30.110648307 0xb3136380 gstbin.c:2320:update_degree:<pipeline2> element capsfilter10 not linked on any sinkpads D/GStreamer+GST_PADS: 0:25:30.110663807 0x9d0ca260 gstpad.c:3815:push_sticky:<udpsrc2:src> event eos marked received D/GStreamer+bin: 0:25:30.110665141 0xb3136380 gstbin.c:912:find_message:<pipeline2> no message found matching types 00001000 D/GStreamer+bin: 0:25:30.110708557 0xb3136380 gstbin.c:919:find_message:<pipeline2> structure-change I/GStreamer+task: 0:25:30.110711891 0x9d0ca260 gsttask.c:318:gst_task_func:<udpsrc2:src> Task going to paused D/GStreamer+bin: 0:25:30.110727099 0xb3136380 gstbin.c:2297:update_degree:<pipeline2> change element udpsrc2, degree 0->1, linked to capsfilter8 D/GStreamer+bin: 0:25:30.110754349 0xb3136380 gstbin.c:912:find_message:<pipeline2> no message found matching types 00001000 D/GStreamer+bin: 0:25:30.110772599 0xb3136380 gstbin.c:919:find_message:<pipeline2> structure-change D/GStreamer+bin: 0:25:30.110793016 0xb3136380 gstbin.c:2320:update_degree:<pipeline2> element autovideosink2 not linked on any sinkpads D/GStreamer+bin: 0:25:30.110814849 0xb3136380 gstbin.c:912:find_message:<pipeline2> no message found matching types 00001000 D/GStreamer+bin: 0:25:30.110838099 0xb3136380 gstbin.c:919:find_message:<pipeline2> structure-change D/GStreamer+bin: 0:25:30.110866891 0xb3136380 gstbin.c:2297:update_degree:<pipeline2> change element queue2, degree 0->1, linked to decodebin2 D/GStreamer+bin: 0:25:30.110895057 0xb3136380 gstbin.c:912:find_message:<pipeline2> no message found matching types 00001000 D/GStreamer+bin: 0:25:30.110911099 0xb3136380 gstbin.c:919:find_message:<pipeline2> structure-change D/GStreamer+bin: 0:25:30.110932974 0xb3136380 gstbin.c:2297:update_degree:<pipeline2> change element capsfilter10, degree 0->1, linked to queue2 D/GStreamer+bin: 0:25:30.110955057 0xb3136380 gstbin.c:912:find_message:<pipeline2> no message found matching types 00001000 D/GStreamer+bin: 0:25:30.110974141 0xb3136380 gstbin.c:919:find_message:<pipeline2> structure-change D/GStreamer+bin: 0:25:30.110993641 0xb3136380 gstbin.c:2297:update_degree:<pipeline2> change element capsfilter8, degree 0->1, linked to tsdemux2 D/GStreamer+bin: 0:25:30.111017766 0xb3136380 gstbin.c:2320:update_degree:<pipeline2> element udpsrc2 not linked on any sinkpads D/GStreamer+bin: 0:25:30.111047557 0xb3136380 gstbin.c:2381:gst_bin_sort_iterator_next:<pipeline2> queue head gives autovideosink2 D/GStreamer+bin: 0:25:30.111069724 0xb3136380 gstbin.c:912:find_message:<pipeline2> no message found matching types 00001000 D/GStreamer+bin: 0:25:30.111089724 0xb3136380 gstbin.c:919:find_message:<pipeline2> structure-change D/GStreamer+bin: 0:25:30.111106516 0xb3136380 gstbin.c:2320:update_degree:<pipeline2> element autovideosink2 not linked on any sinkpads I/GStreamer+GST_STATES: 0:25:30.111124182 0xb3136380 gstbin.c:2515:gst_bin_element_set_state:<autovideosink2> current READY pending PAUSED, desired next READY D/GStreamer+bin: 0:25:30.111145182 0xb3136380 gstbin.c:912:find_message:<pipeline2> no message found matching types 00100000 D/GStreamer+bin: 0:25:30.111162099 0xb3136380 gstbin.c:919:find_message:<pipeline2> async-start D/GStreamer+bin: 0:25:30.111176932 0xb3136380 gstbin.c:2610:gst_bin_element_set_state:<pipeline2> setting element autovideosink2 to READY, base_time 8:03:01.649770037 D/GStreamer+GST_STATES: 0:25:30.111205974 0xb3136380 gstelement.c:2570:gst_element_set_state_func:<autovideosink2> set_state to READY D/GStreamer+GST_STATES: 0:25:30.111223807 0xb3136380 gstelement.c:2595:gst_element_set_state_func:<autovideosink2> setting target state to READY D/GStreamer+GST_STATES: 0:25:30.111239807 0xb3136380 gstelement.c:2608:gst_element_set_state_func:<autovideosink2> current READY, old_pending PAUSED, next PAUSED, old return ASYNC D/GStreamer+GST_STATES: 0:25:30.111258391 0xb3136380 gstelement.c:2642:gst_element_set_state_func:<autovideosink2> final: setting state from PAUSED to READY D/GStreamer+GST_STATES: 0:25:30.111283724 0xb3136380 gstbin.c:2863:gst_bin_change_state_func:<autovideosink2> changing state of children from PAUSED to READY D/GStreamer+bin: 0:25:30.111305474 0xb3136380 gstbin.c:2900:gst_bin_change_state_func:<autovideosink2> clearing all cached messages V/GStreamer+bin: 0:25:30.111322849 0xb3136380 gstbin.c:890:message_check looking at message 0x9acf5f28: 1 D/GStreamer+bin: 0:25:30.111341266 0xb3136380 gstbin.c:988:bin_remove_messages:<autovideosink2-actual-sink-glimage> deleting message 0x9acf5f28 of type async-start (types 0xffffffff) V/GStreamer+GST_MESSAGE: 0:25:30.111369057 0xb3136380 gstmessage.c:207:_gst_message_free finalize message 0x9acf5f28, async-start from autovideosink2-actual-sink-glimage D/GStreamer+bin: 0:25:30.111389391 0xb3136380 gstbin.c:2708:gst_bin_src_pads_activate:<autovideosink2> deactivate pads D/GStreamer+bin: 0:25:30.111412099 0xb3136380 gstbin.c:2716:gst_bin_src_pads_activate:<autovideosink2> pad deactivation successful D/GStreamer+bin: 0:25:30.111434474 0xb3136380 gstbin.c:2394:gst_bin_sort_iterator_resync:<autovideosink2> resync D/GStreamer+bin: 0:25:30.111451099 0xb3136380 gstbin.c:2180:add_to_queue:<autovideosink2> adding 'autovideosink2-actual-sink-glimage' to queue D/GStreamer+bin: 0:25:30.111469599 0xb3136380 gstbin.c:912:find_message:<autovideosink2> no message found matching types 00001000 D/GStreamer+bin: 0:25:30.111487182 0xb3136380 gstbin.c:919:find_message:<autovideosink2> structure-change D/GStreamer+bin: 0:25:30.111505807 0xb3136380 gstbin.c:2320:update_degree:<autovideosink2> element autovideosink2-actual-sink-glimage not linked on any sinkpads D/GStreamer+bin: 0:25:30.111526516 0xb3136380 gstbin.c:2381:gst_bin_sort_iterator_next:<autovideosink2> queue head gives autovideosink2-actual-sink-glimage D/GStreamer+bin: 0:25:30.111542932 0xb3136380 gstbin.c:912:find_message:<autovideosink2> no message found matching types 00001000 D/GStreamer+bin: 0:25:30.111558557 0xb3136380 gstbin.c:919:find_message:<autovideosink2> structure-change D/GStreamer+bin: 0:25:30.111575474 0xb3136380 gstbin.c:2320:update_degree:<autovideosink2> element autovideosink2-actual-sink-glimage not linked on any sinkpads I/GStreamer+GST_STATES: 0:25:30.111592932 0xb3136380 gstbin.c:2515:gst_bin_element_set_state:<autovideosink2-actual-sink-glimage> current READY pending PAUSED, desired next READY D/GStreamer+bin: 0:25:30.111611557 0xb3136380 gstbin.c:912:find_message:<autovideosink2> no message found matching types 00100000 D/GStreamer+bin: 0:25:30.111629974 0xb3136380 gstbin.c:919:find_message:<autovideosink2> async-start D/GStreamer+bin: 0:25:30.111655391 0xb3136380 gstbin.c:2610:gst_bin_element_set_state:<autovideosink2> setting element autovideosink2-actual-sink-glimage to READY, base_time 8:03:01.649770037 D/GStreamer+GST_STATES: 0:25:30.111690599 0xb3136380 gstelement.c:2570:gst_element_set_state_func:<autovideosink2-actual-sink-glimage> set_state to READY D/GStreamer+GST_STATES: 0:25:30.111713182 0xb3136380 gstelement.c:2595:gst_element_set_state_func:<autovideosink2-actual-sink-glimage> setting target state to READY D/GStreamer+GST_STATES: 0:25:30.111736849 0xb3136380 gstelement.c:2608:gst_element_set_state_func:<autovideosink2-actual-sink-glimage> current READY, old_pending PAUSED, next PAUSED, old return ASYNC D/GStreamer+GST_STATES: 0:25:30.111764557 0xb3136380 gstelement.c:2642:gst_element_set_state_func:<autovideosink2-actual-sink-glimage> final: setting state from PAUSED to READY D/GStreamer+glimagesink: 0:25:30.111790891 0xb3136380 gstglsinkbin.c:374:gst_gl_sink_bin_change_state changing state: PAUSED => READY D/GStreamer+GST_STATES: 0:25:30.111811516 0xb3136380 gstbin.c:2863:gst_bin_change_state_func:<autovideosink2-actual-sink-glimage> changing state of children from PAUSED to READY D/GStreamer+bin: 0:25:30.111837432 0xb3136380 gstbin.c:2900:gst_bin_change_state_func:<autovideosink2-actual-sink-glimage> clearing all cached messages V/GStreamer+bin: 0:25:30.111858224 0xb3136380 gstbin.c:890:message_check looking at message 0x97fbb278: 1 D/GStreamer+bin: 0:25:30.111877266 0xb3136380 gstbin.c:988:bin_remove_messages:<sink> deleting message 0x97fbb278 of type async-start (types 0xffffffff) V/GStreamer+GST_MESSAGE: 0:25:30.111904932 0xb3136380 gstmessage.c:207:_gst_message_free finalize message 0x97fbb278, async-start from sink D/GStreamer+bin: 0:25:30.111934016 0xb3136380 gstbin.c:2708:gst_bin_src_pads_activate:<autovideosink2-actual-sink-glimage> deactivate pads D/GStreamer+bin: 0:25:30.111964182 0xb3136380 gstbin.c:2716:gst_bin_src_pads_activate:<autovideosink2-actual-sink-glimage> pad deactivation successful D/GStreamer+bin: 0:25:30.111992182 0xb3136380 gstbin.c:2394:gst_bin_sort_iterator_resync:<autovideosink2-actual-sink-glimage> resync D/GStreamer+bin: 0:25:30.112011766 0xb3136380 gstbin.c:2180:add_to_queue:<autovideosink2-actual-sink-glimage> adding 'sink' to queue D/GStreamer+bin: 0:25:30.112042641 0xb3136380 gstbin.c:912:find_message:<autovideosink2-actual-sink-glimage> no message found matching types 00001000 D/GStreamer+bin: 0:25:30.112065724 0xb3136380 gstbin.c:919:find_message:<autovideosink2-actual-sink-glimage> structure-change D/GStreamer+bin: 0:25:30.112090474 0xb3136380 gstbin.c:2297:update_degree:<autovideosink2-actual-sink-glimage> change element glcolorbalance5, degree 0->1, linked to sink D/GStreamer+bin: 0:25:30.112115307 0xb3136380 gstbin.c:912:find_message:<autovideosink2-actual-sink-glimage> no message found matching types 00001000 D/GStreamer+bin: 0:25:30.112133891 0xb3136380 gstbin.c:919:find_message:<autovideosink2-actual-sink-glimage> structure-change D/GStreamer+bin: 0:25:30.112151266 0xb3136380 gstbin.c:2297:update_degree:<autovideosink2-actual-sink-glimage> change element glcolorconvertelement5, degree 0->1, linked to glcolorbalance5 D/GStreamer+bin: 0:25:30.112176516 0xb3136380 gstbin.c:912:find_message:<autovideosink2-actual-sink-glimage> no message found matching types 00001000 D/GStreamer+bin: 0:25:30.112195557 0xb3136380 gstbin.c:919:find_message:<autovideosink2-actual-sink-glimage> structure-change D/GStreamer+bin: 0:25:30.112213224 0xb3136380 gstbin.c:2297:update_degree:<autovideosink2-actual-sink-glimage> change element gluploadelement5, degree 0->1, linked to glcolorconvertelement5 D/GStreamer+bin: 0:25:30.112237516 0xb3136380 gstbin.c:912:find_message:<autovideosink2-actual-sink-glimage> no message found matching types 00001000 D/GStreamer+bin: 0:25:30.112256307 0xb3136380 gstbin.c:919:find_message:<autovideosink2-actual-sink-glimage> structure-change D/GStreamer+bin: 0:25:30.112273724 0xb3136380 gstbin.c:2320:update_degree:<autovideosink2-actual-sink-glimage> element gluploadelement5 not linked on any sinkpads D/GStreamer+bin: 0:25:30.112293807 0xb3136380 gstbin.c:2381:gst_bin_sort_iterator_next:<autovideosink2-actual-sink-glimage> queue head gives sink D/GStreamer+bin: 0:25:30.112315557 0xb3136380 gstbin.c:912:find_message:<autovideosink2-actual-sink-glimage> no message found matching types 00001000 D/GStreamer+bin: 0:25:30.112335224 0xb3136380 gstbin.c:919:find_message:<autovideosink2-actual-sink-glimage> structure-change D/GStreamer+bin: 0:25:30.112351974 0xb3136380 gstbin.c:2297:update_degree:<autovideosink2-actual-sink-glimage> change element glcolorbalance5, degree 1->0, linked to sink D/GStreamer+bin: 0:25:30.112370766 0xb3136380 gstbin.c:2180:add_to_queue:<autovideosink2-actual-sink-glimage> adding 'glcolorbalance5' to queue I/GStreamer+GST_STATES: 0:25:30.112389432 0xb3136380 gstbin.c:2515:gst_bin_element_set_state:<sink> current READY pending PAUSED, desired next READY D/GStreamer+bin: 0:25:30.112411474 0xb3136380 gstbin.c:912:find_message:<autovideosink2-actual-sink-glimage> no message found matching types 00100000 D/GStreamer+bin: 0:25:30.112432516 0xb3136380 gstbin.c:919:find_message:<autovideosink2-actual-sink-glimage> async-start D/GStreamer+bin: 0:25:30.112449474 0xb3136380 gstbin.c:2610:gst_bin_element_set_state:<autovideosink2-actual-sink-glimage> setting element sink to READY, base_time 8:03:01.649770037 D/GStreamer+GST_STATES: 0:25:30.112479057 0xb3136380 gstelement.c:2570:gst_element_set_state_func:<sink> set_state to READY D/GStreamer+GST_STATES: 0:25:30.112504974 0xb3136380 gstelement.c:2595:gst_element_set_state_func:<sink> setting target state to READY D/GStreamer+GST_STATES: 0:25:30.112531682 0xb3136380 gstelement.c:2608:gst_element_set_state_func:<sink> current READY, old_pending PAUSED, next PAUSED, old return ASYNC D/GStreamer+GST_STATES: 0:25:30.112561557 0xb3136380 gstelement.c:2642:gst_element_set_state_func:<sink> final: setting state from PAUSED to READY D/GStreamer+glimagesink: 0:25:30.112586474 0xb3136380 gstglimagesink.c:1172:gst_glimage_sink_change_state changing state: PAUSED => READY V/GStreamer+GST_STATES: 0:25:30.112610224 0xb3136380 gstelement.c:2897:gst_element_change_state_func:<sink> default handler tries setting state from PAUSED to READY (001a) D/GStreamer+GST_ELEMENT_PADS: 0:25:30.112629766 0xb3136380 gstelement.c:2840:gst_element_pads_activate:<sink> deactivate pads D/GStreamer+GST_PADS: 0:25:30.112653391 0xb3136380 gstpad.c:1078:gst_pad_set_active:<sink:sink> deactivating pad from push mode D/GStreamer+GST_PADS: 0:25:30.112673724 0xb3136380 gstpad.c:967:pre_activate:<sink:sink> setting PAD_MODE NONE, set flushing D/GStreamer+basesink: 0:25:30.112691682 0xb3136380 gstbasesink.c:4083:gst_base_sink_set_flushing:<sink> flushing out data thread, need preroll to TRUE D/GStreamer+GST_PADS: 0:25:30.112710766 0xb3136380 gstpad.c:1015:post_activate:<sink:sink> stopped streaming D/GStreamer+GST_ELEMENT_PADS: 0:25:30.115072766 0xb3136380 gstelement.c:2859:gst_element_pads_activate:<glcolorbalance5> pad deactivation successful Does anybody have an idea of what could be wrong ? |
I have zero experience with android development, so I maigth be missing something. However, what I presume is happening is that the decodebin is detecting the multicast as a new stream, it is recalculating the decoding pipeline and creating a new pad for outputting the data. There is no logic to handle the new pad so the pipeline fails complaining it is unlinked. This is especially the case if you are using something like rtp, which has a session manager and there is no predefined token for the session it should be monitoring. You need to monitor the decode bin for the new-pad event. When a new pad becomes available you need to link it to the sink so you can continue streaming. You also need to handle the old pad, either returning it to the bin or connecting it to a fakesink or a pad that will handle any incoming data. It might be better to extract the rtpbin from the decodebin, or whatever session manager is performing the change in your case, to ensure that you can handle the pads correctly for your case. Another small note is that you shouldn't use sync=false. If your stream is dropping frames it is because it is not calculating the required latency correctly. You can either use the "ts-offset" parameter of the sink to add some latency to the calculated one or set the entire pipeline latency using gst_pipeline_set_latency. Also, if you are not handling the latency messages from the bus you can have similar results. You need to call a gst_bin_recalculate_latency to correct the latency calculation when there are changes in the pipeline, which can happen when using decodebin.On Fri, Feb 3, 2017 at 12:53 AM, adr0id <[hidden email]> wrote: I am receiving a multicast udp ts stream in android using tutorial 3, this is |