From 89af379ff040923cfcbaf05354ed2b01a620b1b9 Mon Sep 17 00:00:00 2001 From: Jan Schmidt Date: Mon, 8 Aug 2016 00:56:38 +1000 Subject: [PATCH] splitmux: Recheck state after unlocking mutex. After dropping the splitmux lock, re-check the state, don't just fall through and sleep unconditionally, as we may have already missed the wakeup. https://bugzilla.gnome.org/show_bug.cgi?id=769514 --- gst/multifile/gstsplitmuxsink.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gst/multifile/gstsplitmuxsink.c b/gst/multifile/gstsplitmuxsink.c index bf66a113f5..d3908c0e56 100644 --- a/gst/multifile/gstsplitmuxsink.c +++ b/gst/multifile/gstsplitmuxsink.c @@ -1233,6 +1233,9 @@ handle_mq_input (GstPad * pad, GstPadProbeInfo * info, MqStreamCtx * ctx) GST_SPLITMUX_UNLOCK (splitmux); gst_pad_send_event (ctx->sinkpad, event); GST_SPLITMUX_LOCK (splitmux); + /* state may have changed while we were unlocked. Loop again if so */ + if (splitmux->state != SPLITMUX_STATE_ENDING_FILE) + break; /* fallthrough */ } case SPLITMUX_STATE_START_NEXT_FRAGMENT: -- 2.34.1