mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-25 01:30:38 +00:00
webrtcbin: Fix potential deadlock when closing before any data was sent
A blocking pad probe is added on new sink pads, it's usually removed after the caps have been negotiated or the signaling state switched to stable, but if that never happens and the pad is released we kept the pad probe active, leaving the pad blocked, preventing clean disposal. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4533>
This commit is contained in:
parent
943a53cc51
commit
0a23782aea
1 changed files with 5 additions and 0 deletions
|
@ -8184,6 +8184,11 @@ gst_webrtc_bin_release_pad (GstElement * element, GstPad * pad)
|
||||||
gst_caps_replace (&webrtc_pad->received_caps, NULL);
|
gst_caps_replace (&webrtc_pad->received_caps, NULL);
|
||||||
PC_UNLOCK (webrtc);
|
PC_UNLOCK (webrtc);
|
||||||
|
|
||||||
|
if (webrtc_pad->block_id) {
|
||||||
|
gst_pad_remove_probe (GST_PAD (pad), webrtc_pad->block_id);
|
||||||
|
webrtc_pad->block_id = 0;
|
||||||
|
}
|
||||||
|
|
||||||
_remove_pad (webrtc, webrtc_pad);
|
_remove_pad (webrtc, webrtc_pad);
|
||||||
|
|
||||||
PC_LOCK (webrtc);
|
PC_LOCK (webrtc);
|
||||||
|
|
Loading…
Reference in a new issue