rtspclientsink problem, it does not consume the stream or prevent pipeline going to the PLAYING state

Uğur Bozkaya ugur at younow.com
Thu Jul 28 09:30:10 UTC 2016


Hi,

After upgrading the gstreamer to 1.8.0 my pipeline started to have problems. The pipeline has a webrtcendpoint source and a rtspclientsink to output the stream to a server. For some reason pipeline is getting stuck while switching to the PLAYING state. When i remove the rtspclientsink and replace it with a autovideosink it kind of works. I mean i normally set the pipeline to playing state and use gst_element_sync_state_with_parent function on each element. But with the autovideosink the videosink does not go to the playing state so i specifically set it to the playing state with a timer and then the pipeline starts to work as expected. Anyway the original pipeline should have rtspclientsink, with this element the behaviour is weird. I try to set the state to PLAYING and then check the state with gst_element_get_state and it never returns. Since rtspclientsink is not consuming the video after a while one of the queues in the pipeline get full and i start to get queue overrun messages. Below is the debug logs from rtspclient.

Any ideas how might be causing this and how can i solve it?

Thanks,
Ugur



0:00:13.940565255 63445 0x7fffcc001400 DEBUG         rtspclientsink gstrtspclientsink.c:1043:gst_rtsp_client_sink_sinkpad_event:<rtspsink> Have set caps event on pad <rtspsink:sink_0> caps video/x-h264, codec_data=(buffer)01640029ffe1001867640029acb20508fcb80880000003008000000a478c192401000568ebccb22c, stream-format=(string)avc, alignment=(string)au, level=(string)4.1, profile=(string)high, width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)10/1
0:00:13.940728972 63445 0x7fffcc001400 DEBUG         rtspclientsink gstrtspclientsink.c:865:gst_rtsp_client_sink_make_payloader: caps video/x-h264, codec_data=(buffer)01640029ffe1001867640029acb20508fcb80880000003008000000a478c192401000568ebccb22c, stream-format=(string)avc, alignment=(string)au, level=(string)4.1, profile=(string)high, width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)10/1 intersects with template video/x-h264, stream-format=(string)avc, alignment=(string)au; video/x-h264, stream-format=(string)byte-stream, alignment=(string){ nal, au } for payloader rtph264pay
0:00:13.941078649 63445 0x7fffcc001400 DEBUG         rtspclientsink gstrtspclientsink.c:978:gst_rtsp_client_sink_setup_payloader:<rtspsink> Configuring payloader <rtph264pay0> for pad <rtspsink:sink_0>
0:00:13.941388744 63445 0x7fffcc001400 INFO          rtspclientsink gstrtspclientsink.c:949:handle_payloader_block:<rtspsink> Block on pad <rtph264pay0:src>
0:00:13.941415474 63445 0x7fffcc001400 INFO          rtspclientsink gstrtspclientsink.c:956:handle_payloader_block:<rtspsink> Announced preroll on pad <rtph264pay0:src>
0:00:13.941430630 63445       0x955850 DEBUG         rtspclientsink gstrtspclientsink.c:3381:gst_rtsp_client_sink_collect_streams:<rtspsink> Creating stream object for stream 0
0:00:13.941448946 63445       0x955850 DEBUG         rtspclientsink gstrtspclientsink.c:898:gst_rtsp_client_sink_create_stream:<rtspsink> Assigning pt 96 to stream 0
0:00:13.941585894 63445       0x955850 DEBUG             rtspstream rtsp-stream.c:257:gst_rtsp_stream_init: new stream 0x7fffa4053440
0:00:13.941714477 63445       0x955850 DEBUG             rtspstream rtsp-stream.c:1635:gst_rtsp_stream_set_retransmission_time:<GstRTSPStream at 0x7fffa4053440> set retransmission time 500000000
0:00:13.941725019 63445       0x955850 DEBUG             rtspstream rtsp-stream.c:1679:gst_rtsp_stream_set_retransmission_pt:<GstRTSPStream at 0x7fffa4053440> set retransmission pt 97
0:00:13.941739697 63445       0x955850 INFO              rtspstream rtsp-stream.c:2568:gst_rtsp_stream_join_bin: stream 0x7fffa4053440 joining bin as session 0
0:00:13.942242040 63445       0x955850 DEBUG         rtspclientsink gstrtspclientsink.c:3323:request_aux_sender:<rtspsink> Creating aux sender for stream 0
0:00:13.942290005 63445       0x955850 INFO              rtspstream rtsp-stream.c:2195:gst_rtsp_stream_request_aux_sender: creating rtxsend with pt 96 to 97
0:00:13.979730326 63445       0x955850 DEBUG         rtspclientsink gstrtspclientsink.c:4417:gst_rtsp_client_sink_handle_message:<rtspsink> Internal bin changed state to PAUSED (pending PAUSED). Prerolled now 0
0:00:13.989926185 63445 0x7fffcc001400 INFO              rtspstream rtsp-stream.c:1949:on_new_sender_ssrc: 0x7fffa4053440: new sender source 0x9acd20
0:00:13.990012165 63445 0x7fffcc001400 INFO              rtspstream rtsp-stream.c:1784:dump_structure: structure: application/x-rtp-source-stats, ssrc=(uint)2579333304, internal=(boolean)true, validated=(boolean)true, received-bye=(boolean)false, is-csrc=(boolean)false, is-sender=(boolean)false, seqnum-base=(int)25773, clock-rate=(int)90000, octets-sent=(guint64)0, packets-sent=(guint64)0, octets-received=(guint64)0, packets-received=(guint64)0, bitrate=(guint64)0, packets-lost=(int)0, jitter=(uint)0, sent-pli-count=(uint)0, recv-pli-count=(uint)0, sent-fir-count=(uint)0, recv-fir-count=(uint)0, have-sr=(boolean)false, sr-ntptime=(guint64)0, sr-rtptime=(uint)0, sr-octet-count=(uint)0, sr-packet-count=(uint)0;
0:00:13.990056730 63445 0x7fffcc001400 INFO              rtspstream rtsp-stream.c:1767:caps_notify: stream 0x7fffa4053440 received caps 0x7fffb0007230, application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, profile-level-id=(string)640029, sprop-parameter-sets=(string)"Z2QAKayyBQj8uAiAAAADAIAAAApHjBkk\,aOvMsiw\=", payload=(int)96, ssrc=(uint)2579333304, timestamp-offset=(uint)475361622, seqnum-offset=(uint)25773, a-framerate=(string)10, rtx-ssrc=(uint)1359758373, rtx-seqnum-offset=(uint)32900, rtx-payload=(int)97
0:00:13.990391285 63445 0x7fffd401ff20 FIXME               basesink gstbasesink.c:3125:gst_base_sink_default_event:<appsink0> stream-start event without group-id. Consider implementing group-id handling in the upstream elements
0:00:13.990686538 63445 0x7fffd401fc50 FIXME               basesink gstbasesink.c:3125:gst_base_sink_default_event:<multiudpsink0> stream-start event without group-id. Consider implementing group-id handling in the upstream elements
0:00:13.990821136 63445 0x7fffd401fc50 DEBUG         rtspclientsink gstrtspclientsink.c:4417:gst_rtsp_client_sink_handle_message:<rtspsink> Internal bin changed state to PAUSED (pending VOID_PENDING). Prerolled now 1
0:00:13.990853287 63445 0x7fffd401fc50 DEBUG         rtspclientsink gstrtspclientsink.c:4382:gst_rtsp_client_sink_handle_message:<rtspsink> Posting ASYNC-DONE
0:00:13.990874112 63445       0x955850 DEBUG         rtspclientsink gstrtspclientsink.c:4442:gst_rtsp_client_sink_thread:<rtspsink> got command LOOP
0:00:13.990882319 63445       0x955850 DEBUG         rtspclientsink gstrtspclientsink.c:1756:gst_rtsp_client_sink_connection_flush:<rtspsink> set flushing 0
0:00:13.990890892 63445       0x955850 DEBUG         rtspclientsink gstrtspclientsink.c:1914:gst_rtsp_client_sink_loop_rx:<rtspsink> doing receive with timeout 53 seconds
0:00:13.991103113 63445 0x7fffd4005370 FIXME                default gstutils.c:3764:gst_pad_create_stream_id_internal:<appsrc0:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id


More information about the gstreamer-devel mailing list