gstreamer/gst
Branko Subasic 2894640cc5 rtsp-client: cleanup transports during TEARDOWN
When tunneling RTP over RTSP the stream transports are stored in a hash
table in the GstRTSPClientPrivate struct. They are used for, among other
things, mapping channel id to stream transports when receiving data from
the client. The stream tranports are created and added to the hash table
in handle_setup_request(), but unfortuately they are not removed in
handle_teardown_request(). This means that if the client sends data on
the RTSP connection after it has sent the TEARDOWN, which is often the
case when audio backchannel is enabled, handle_data() will still be able
to map the channel to a session transport and pass the data along to it.
Which eventually leads to a failing assert in gst_rtsp_stream_recv_rtp()
because the stream is no longer joined to a bin.
We avoid this by removing the stream transports from the hash table when
we handle the TEARDOWN request.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/184>
2021-01-22 16:42:00 +01:00
..
rtsp-server rtsp-client: cleanup transports during TEARDOWN 2021-01-22 16:42:00 +01:00
rtsp-sink rtspclientsink: Add "update-sdp" signal that allows updating the SDP before sending it to the server 2021-01-08 13:26:01 +00:00
meson.build meson: add option to disable build of rtspclientsink plugin 2018-09-19 12:17:57 +01:00