Streaming stopped, Pad is not linked after Android recreates surfaceview

Dimitrios Katsaros patcherwork at gmail.com
Fri Feb 3 09:09:49 UTC 2017


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 <alejandro.icss at gmail.com> wrote:

> 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 error
> 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 ?
>
>
>
> --
> View this message in context: http://gstreamer-devel.966125.
> n4.nabble.com/Streaming-stopped-Pad-is-not-linked-after-Android-recreates-
> surfaceview-tp4681693.html
> Sent from the GStreamer-devel mailing list archive at Nabble.com.
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20170203/44e94f38/attachment-0001.html>


More information about the gstreamer-devel mailing list