summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Hervey <edward@centricular.com>2020-05-05 15:19:49 +0200
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>2020-09-25 05:02:05 +0000
commitaaa9018437ec6b2c5312c9021bd2518ee6851128 (patch)
tree21f6ac95e20b44a209a343ac13d5b92baa384a9f
parentc4074a2a0feda5b0f6337d40f7b5febccfaef51a (diff)
downloadgstreamer-plugins-good-aaa9018437ec6b2c5312c9021bd2518ee6851128.tar.gz
slitmuxsrc: Properly stop the loop if not part reader is present
Previously this would end up in a refcounting loop of hell. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/741>
-rw-r--r--gst/multifile/gstsplitmuxsrc.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gst/multifile/gstsplitmuxsrc.c b/gst/multifile/gstsplitmuxsrc.c
index 9a80dde25..e2216fcc7 100644
--- a/gst/multifile/gstsplitmuxsrc.c
+++ b/gst/multifile/gstsplitmuxsrc.c
@@ -737,7 +737,11 @@ gst_splitmux_pad_loop (GstPad * pad)
GST_OBJECT_LOCK (splitpad);
if (splitpad->part_pad == NULL) {
+ GST_DEBUG_OBJECT (splitmux,
+ "Pausing task because part reader is not present");
GST_OBJECT_UNLOCK (splitpad);
+ gst_pad_pause_task (pad);
+ gst_object_unref (splitmux);
return;
}
part_pad = gst_object_ref (splitpad->part_pad);