summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorDoug Nazar <nazard@nazar.ca>2021-05-18 00:43:23 -0400
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>2021-05-19 05:49:48 +0000
commitbe1c154f33133904632e4f5eb1850090f5212874 (patch)
tree538e1b8dca2844b6871177bc8778881caeecf9a2 /ext
parent5663db236f8b7c17cc7065a982ea81a86c9e2fe1 (diff)
downloadgstreamer-plugins-bad-be1c154f33133904632e4f5eb1850090f5212874.tar.gz
sctp: Ensure pad is still a child of element before removal
During pipeline shutdown there are several competing paths to remove pads. Avoids tests failing due to: Unexpected critical/warning: Padname '':sink_1 does not belong to element sctpenc1 when removing Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2256>
Diffstat (limited to 'ext')
-rw-r--r--ext/sctp/gstsctpenc.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/ext/sctp/gstsctpenc.c b/ext/sctp/gstsctpenc.c
index 99a0e83d2..e420fe0c8 100644
--- a/ext/sctp/gstsctpenc.c
+++ b/ext/sctp/gstsctpenc.c
@@ -483,7 +483,10 @@ gst_sctp_enc_release_pad (GstElement * element, GstPad * pad)
if (self->sctp_association)
gst_sctp_association_reset_stream (self->sctp_association, stream_id);
- gst_element_remove_pad (element, pad);
+ GST_PAD_STREAM_LOCK (pad);
+ if (gst_object_has_as_parent (GST_OBJECT (pad), GST_OBJECT (element)))
+ gst_element_remove_pad (element, pad);
+ GST_PAD_STREAM_UNLOCK (pad);
}
static void