webrtc: Reset received_caps when releasing pad
authorOlivier Crête <olivier.crete@collabora.com>
Tue, 23 Mar 2021 23:51:00 +0000 (19:51 -0400)
committerOlivier Crête <olivier.crete@collabora.com>
Mon, 12 Apr 2021 21:55:07 +0000 (17:55 -0400)
This is to work around a race where the pad is accessed in the
webrtc main thread while being released.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>

ext/webrtc/gstwebrtcbin.c

index 200862a..495af81 100644 (file)
@@ -6268,6 +6268,7 @@ gst_webrtc_bin_release_pad (GstElement * element, GstPad * pad)
   if (webrtc_pad->trans)
     gst_object_unref (webrtc_pad->trans);
   webrtc_pad->trans = NULL;
+  gst_caps_replace (&webrtc_pad->received_caps, NULL);
   PC_UNLOCK (webrtc);
 
   _remove_pad (webrtc, webrtc_pad);