rtspsrc: one of 2 udpsrc elements not linking after 2 seconds
@tmatth
Submitted by Tristan Matthews Link to original bug (#793991)
Description
Given the following pipeline:
gst-launch-1.0 -q -e matroskamux streamable=true name=m ! fdsink \
rtspsrc location=$1 name=rdummy rdummy. ! application/x-rtp,media=video ! rtpjitterbuffer ! rtph264depay ! video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal ! h264parse ! m. rdummy. ! application/x-rtp,media=audio ! rtpjitterbuffer ! rtpopusdepay ! m. > /dev/null
roughly 5% of the time, one of the two incoming media streams will fail after about 2 seconds (presumably after a latency query or reconfigure event?) as follows:
0:00:02.078042604 19777 0x7fc6dc026a80 LOG udpsrc gstudpsrc.c:986:gst_udpsrc_create:<udpsrc4>
read packet of 93 bytes
0:00:02.078072313 19777 0x7fc6dc026a80 LOG udpsrc gstudpsrc.c:839:gst_udpsrc_create:<udpsrc4>
doing select, timeout -1
0:00:02.081902970 19777 0x7fc6dc0269e0 LOG udpsrc gstudpsrc.c:986:gst_udpsrc_create:<udpsrc1>
read packet of 1149 bytes
0:00:02.081942643 19777 0x7fc6dc0269e0 LOG udpsrc gstudpsrc.c:839:gst_udpsrc_create:<udpsrc1>
doing select, timeout -1
0:00:02.085983387 19777 0x7fc6dc0269e0 LOG udpsrc gstudpsrc.c:986:gst_udpsrc_create:<udpsrc1>
read packet of 1149 bytes
0:00:02.086292923 19777 0x7fc6dc0269e0 LOG udpsrc gstudpsrc.c:839:gst_udpsrc_create:<udpsrc1>
doing select, timeout -1
0:00:02.090186233 19777 0x7fc6b4001770 DEBUG rtspsrc gstrtspsrc.c:2515:new_manager_pad:<rdummy>
got new manager pad manager:recv_rtp_src_0_4129694351_100
0:00:02.090220701 19777 0x7fc6b4001770 DEBUG rtspsrc gstrtspsrc.c:2523:new_manager_pad:<rdummy>
stream: 0, SSRC f626228f, PT 100
0:00:02.090233821 19777 0x7fc6b4001770 DEBUG rtspsrc gstrtspsrc.c:2541:new_manager_pad:<rdummy>
stream 0x7fc6dc034f90, container 0, added 1, setup 1
0:00:02.090242521 19777 0x7fc6b4001770 DEBUG rtspsrc gstrtspsrc.c:2541:new_manager_pad:<rdummy>
stream 0x7fc6dc039400, container 0, added 0, setup 1
0:00:02.090316801 19777 0x7fc6b4001770 DEBUG rtspsrc gstrtspsrc.c:2497:copy_sticky_events:<'':recv_rtp_src_0_4129694351_100> store sticky event stream-start event: 0x7fc6c0001ae0, time 99:99:99.999999999, seq-num 197, GstEventStreamStart, stream-id=(string)04d49d18f97e5c7c23150b858a8db0013decbe84a153717fd9b6ca9957b2015b, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)2;
0:00:02.090349086 19777 0x7fc6b4001770 DEBUG rtspsrc gstrtspsrc.c:2497:copy_sticky_events:<'':recv_rtp_src_0_4129694351_100> store sticky event caps event: 0x7fc69c004aa0, time 99:99:99.999999999, seq-num 273, GstEventCaps, caps=(GstCaps)"application/x-rtp,\ media=(string)video,\ payload=(int)100,\ clock-rate=(int)90000,\ encoding-name=(string)H264,\ a-recvonly=(string)"",\ npt-start=(guint64)0,\ play-speed=(double)1,\ play-scale=(double)1";
0:00:02.090382172 19777 0x7fc6b4001770 DEBUG rtspsrc gstrtspsrc.c:2497:copy_sticky_events:<'':recv_rtp_src_0_4129694351_100> store sticky event segment event: 0x7fc6b4001c20, time 99:99:99.999999999, seq-num 189, GstEventSegment, segment=(GstSegment)"GstSegment, flags=(GstSegmentFlags)GST_SEGMENT_FLAG_NONE, rate=(double)1, applied-rate=(double)1, format=(GstFormat)GST_FORMAT_TIME, base=(guint64)0, offset=(guint64)0, start=(guint64)0, stop=(guint64)18446744073709551615, time=(guint64)0, position=(guint64)0, duration=(guint64)18446744073709551615;";
0:00:02.090057803 19777 0x7fc6a40024f0 DEBUG rtspsrc gstrtspsrc.c:2515:new_manager_pad:<rdummy>
got new manager pad manager:recv_rtp_src_1_2169136101_111
0:00:02.090690826 19777 0x7fc6a40024f0 DEBUG rtspsrc gstrtspsrc.c:2523:new_manager_pad:<rdummy>
stream: 1, SSRC 814a63e5, PT 111
0:00:02.090700695 19777 0x7fc6a40024f0 DEBUG rtspsrc gstrtspsrc.c:2541:new_manager_pad:<rdummy>
stream 0x7fc6dc034f90, container 0, added 1, setup 1
0:00:02.090708291 19777 0x7fc6a40024f0 DEBUG rtspsrc gstrtspsrc.c:2541:new_manager_pad:<rdummy>
stream 0x7fc6dc039400, container 0, added 1, setup 1
0:00:02.090714387 19777 0x7fc6dc0269e0 LOG udpsrc gstudpsrc.c:986:gst_udpsrc_create:<udpsrc1>
read packet of 1150 bytes
0:00:02.091397125 19777 0x7fc6dc0269e0 LOG udpsrc gstudpsrc.c:839:gst_udpsrc_create:<udpsrc1>
doing select, timeout -1
0:00:02.091431768 19777 0x7fc6a40024f0 DEBUG rtspsrc gstrtspsrc.c:2497:copy_sticky_events:<'':recv_rtp_src_1_2169136101_111> store sticky event stream-start event: 0x7fc6a4002800, time 99:99:99.999999999, seq-num 213, GstEventStreamStart, stream-id=(string)179e366b8498a8667173dfedcff39eb461f11618ae6d5b147030dc493d655258, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)4;
0:00:02.091606717 19777 0x7fc6a40024f0 DEBUG rtspsrc gstrtspsrc.c:2497:copy_sticky_events:<'':recv_rtp_src_1_2169136101_111> store sticky event caps event: 0x7fc69c004440, time 99:99:99.999999999, seq-num 270, GstEventCaps, caps=(GstCaps)"application/x-rtp,\ media=(string)audio,\ payload=(int)111,\ clock-rate=(int)48000,\ encoding-name=(string)OPUS,\ encoding-params=(string)2,\ a-recvonly=(string)"",\ npt-start=(guint64)0,\ play-speed=(double)1,\ play-scale=(double)1";
0:00:02.091685560 19777 0x7fc6a40024f0 DEBUG rtspsrc gstrtspsrc.c:2497:copy_sticky_events:<'':recv_rtp_src_1_2169136101_111> store sticky event segment event: 0x7fc6a40028e0, time 99:99:99.999999999, seq-num 201, GstEventSegment, segment=(GstSegment)"GstSegment, flags=(GstSegmentFlags)GST_SEGMENT_FLAG_NONE, rate=(double)1, applied-rate=(double)1, format=(GstFormat)GST_FORMAT_TIME, base=(guint64)0, offset=(guint64)0, start=(guint64)0, stop=(guint64)18446744073709551615, time=(guint64)0, position=(guint64)0, duration=(guint64)18446744073709551615;";
0:00:02.091822308 19777 0x7fc6b4001770 DEBUG rtspsrc gstrtspsrc.c:2352:gst_rtspsrc_handle_src_query:<rdummy>
pad rdummy:recv_rtp_src_0_4129694351_100 received query caps
0:00:02.091918005 19777 0x7fc6a40024f0 DEBUG rtspsrc gstrtspsrc.c:2352:gst_rtspsrc_handle_src_query:<rdummy>
pad rdummy:recv_rtp_src_1_2169136101_111 received query caps
0:00:02.091981446 19777 0x7fc6b4001770 DEBUG rtspsrc gstrtspsrc.c:2238:gst_rtspsrc_handle_src_event:<rdummy>
pad rdummy:recv_rtp_src_0_4129694351_100 received event reconfigure
0:00:02.092019689 19777 0x7fc6b4001770 DEBUG rtspsrc gstrtspsrc.c:2352:gst_rtspsrc_handle_src_query:<rdummy>
pad rdummy:recv_rtp_src_0_4129694351_100 received query caps
0:00:02.091957946 19777 0x7fc6a40024f0 DEBUG rtspsrc gstrtspsrc.c:2352:gst_rtspsrc_handle_src_query:<rdummy>
pad rdummy:recv_rtp_src_1_2169136101_111 received query caps
0:00:02.092692372 19777 0x7fc6b4001770 DEBUG rtspsrc gstrtspsrc.c:2352:gst_rtspsrc_handle_src_query:<rdummy>
pad rdummy:recv_rtp_src_0_4129694351_100 received query caps
0:00:02.092794687 19777 0x7fc6b4001770 DEBUG rtspsrc gstrtspsrc.c:2238:gst_rtspsrc_handle_src_event:<rdummy>
pad rdummy:recv_rtp_src_0_4129694351_100 received event reconfigure
0:00:02.093092101 19777 0x7fc6b4001770 DEBUG rtspsrc gstrtspsrc.c:2352:gst_rtspsrc_handle_src_query:<rdummy>
pad rdummy:recv_rtp_src_1_2169136101_111 received query caps
0:00:02.093123031 19777 0x7fc6b4001770 DEBUG rtspsrc gstrtspsrc.c:2238:gst_rtspsrc_handle_src_event:<rdummy>
pad rdummy:recv_rtp_src_1_2169136101_111 received event reconfigure
0:00:02.093145963 19777 0x7fc6b4001770 DEBUG rtspsrc gstrtspsrc.c:2352:gst_rtspsrc_handle_src_query:<rdummy>
pad rdummy:recv_rtp_src_1_2169136101_111 received query caps
0:00:02.093179414 19777 0x7fc6b4001770 DEBUG rtspsrc gstrtspsrc.c:2352:gst_rtspsrc_handle_src_query:<rdummy>
pad rdummy:recv_rtp_src_1_2169136101_111 received query caps
0:00:02.093223054 19777 0x7fc6b4001770 DEBUG rtspsrc gstrtspsrc.c:2238:gst_rtspsrc_handle_src_event:<rdummy>
pad rdummy:recv_rtp_src_1_2169136101_111 received event reconfigure
0:00:02.093009008 19777 0x7fc6a40024f0 DEBUG rtspsrc gstrtspsrc.c:2352:gst_rtspsrc_handle_src_query:<rdummy>
pad rdummy:recv_rtp_src_1_2169136101_111 received query caps
0:00:02.093308037 19777 0x7fc6a40024f0 DEBUG rtspsrc gstrtspsrc.c:2238:gst_rtspsrc_handle_src_event:<rdummy>
pad rdummy:recv_rtp_src_1_2169136101_111 received event reconfigure
0:00:02.093388795 19777 0x7fc6a40024f0 DEBUG rtspsrc gstrtspsrc.c:2352:gst_rtspsrc_handle_src_query:<rdummy>
pad rdummy:recv_rtp_src_1_2169136101_111 received query caps
0:00:02.094016160 19777 0x7fc6a40024f0 DEBUG rtspsrc gstrtspsrc.c:2565:new_manager_pad:<rdummy>
We added all streams
0:00:02.095690762 19777 0x7fc6dc0269e0 LOG udpsrc gstudpsrc.c:986:gst_udpsrc_create:<udpsrc1>
read packet of 1150 bytes
0:00:02.095756853 19777 0x7fc6dc0269e0 LOG udpsrc gstudpsrc.c:839:gst_udpsrc_create:<udpsrc1>
doing select, timeout -1
0:00:02.098909941 19777 0x7fc6dc0269e0 LOG udpsrc gstudpsrc.c:986:gst_udpsrc_create:<udpsrc1>
read packet of 1150 bytes
0:00:02.098946815 19777 0x7fc6dc0269e0 LOG udpsrc gstudpsrc.c:839:gst_udpsrc_create:<udpsrc1>
doing select, timeout -1
0:00:02.099138373 19777 0x9c5d40 DEBUG rtspsrc gstrtspsrc.c:2352:gst_rtspsrc_handle_src_query:<rdummy>
pad rdummy:recv_rtp_src_0_4129694351_100 received query seeking
0:00:02.099385232 19777 0x9c5d40 DEBUG rtspsrc gstrtspsrc.c:2352:gst_rtspsrc_handle_src_query:<rdummy>
pad rdummy:recv_rtp_src_0_4129694351_100 received query duration
0:00:02.104513381 19777 0x7fc6dc026a80 LOG udpsrc gstudpsrc.c:986:gst_udpsrc_create:<udpsrc4>
read packet of 93 bytes
0:00:02.104580298 19777 0x7fc6dc026a80 DEBUG rtspsrc gstrtspsrc.c:7604:gst_rtspsrc_handle_message:<rdummy>
got error from udpsrc4
0:00:02.104589202 19777 0x7fc6dc026a80 DEBUG rtspsrc gstrtspsrc.c:7618:gst_rtspsrc_handle_message:<rdummy>
combined flows: ok
Further debugging revealed that the udpsrc4 errors out due to not linking.
This may be pushing the limits of what one should expect from gst-launch, but the fact that this pipeline works without issue most of the time would seem to indicate that this is a bug.
I've reproduced this with GStreamer 1.8.3 and 1.13.1
Version: 1.13.1