summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2020-12-01 13:13:40 +0200
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>2020-12-02 16:26:40 +0000
commitee38a96c83661ab58a1a61196a6c6ae875393e28 (patch)
treef988abbaef88f5921e8dc7b46db39bc2d2feebe0
parent450d1560732523fd0b2bb9701cb1828c820ef63a (diff)
downloadgstreamer-plugins-base-ee38a96c83661ab58a1a61196a6c6ae875393e28.tar.gz
compositor: Don't crash in prepare_frame() if the pad was just removed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/955>
-rw-r--r--gst/compositor/compositor.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gst/compositor/compositor.c b/gst/compositor/compositor.c
index 9c2e0ee46..45f3e78f0 100644
--- a/gst/compositor/compositor.c
+++ b/gst/compositor/compositor.c
@@ -416,7 +416,10 @@ gst_compositor_pad_prepare_frame (GstVideoAggregatorPad * pad,
/* Check if this frame is obscured by a higher-zorder frame
* TODO: Also skip a frame if it's obscured by a combination of
* higher-zorder frames */
- l = g_list_find (GST_ELEMENT (vagg)->sinkpads, pad)->next;
+ l = g_list_find (GST_ELEMENT (vagg)->sinkpads, pad);
+ /* The pad might've just been removed */
+ if (l)
+ l = l->next;
for (; l; l = l->next) {
if (_pad_obscures_rectangle (vagg, l->data, frame_rect)) {
frame_obscured = TRUE;