rtspsrc does not emit no-more-pads unless all streams are added
Submitted by Evan Callaway
Link to original bug (#759204)
Description
Here is a simple pipeline that I can use to pull a video stream from a camera:
GST_DEBUG=rtspsrc:5 gst-launch-1.0 rtspsrc -e location=rtsp://user:pass@192.168.103.67/rtsp/onvif?profile=stream_all debug=1 ! decodebin ! fakesink
I found that there is some inconsistency in whether the no-more-pads signal is emitted in rtspsrc; some cameras emit the signal and others do not.
Here's a sample of my debug output:
gstrtspsrc.c:2943:pad_blocked:<rtspsrc0>``^
[[00m pad udpsrc1:src blocked, activating streams
gstrtspsrc.c:4280:gst_rtspsrc_activate_streams:<rtspsrc0>``^
[[00m activating streams
gstrtspsrc.c:4317:gst_rtspsrc_activate_streams:<rtspsrc0>``^
[[00m unblocking stream pad 0x7fd37001faf0
gstrtspsrc.c:4317:gst_rtspsrc_activate_streams:<rtspsrc0>``^
[[00m unblocking stream pad 0x7fd37001e990
gstrtspsrc.c:2987:new_manager_pad:<rtspsrc0>``^
[[00m got new manager pad manager:recv_rtp_src_0_2042830296_98
gstrtspsrc.c:2995:new_manager_pad:<rtspsrc0>``^
[[00m stream: 0, SSRC 79c31dd8, PT 98
gstrtspsrc.c:3013:new_manager_pad:<rtspsrc0>``^
[[00m stream 0x7fd37001faf0, container 0, added 1, setup 1
gstrtspsrc.c:3013:new_manager_pad:<rtspsrc0>``^
[[00m stream 0x7fd37001e990, container 0, added 0, setup 1
As you can see, we attempt to activate two streams, but only actually add one of them, so no-more-pads is never emitted in new_manager_pad. It seems as though no-more-pads should be emitted when all streams have either been added or can't be added.
Please let me know your thoughts on this.
Version: 1.6.1