From 07f49f15b1196cc9fa0d45af91149a35fce123b9 Mon Sep 17 00:00:00 2001 From: Jan Schmidt Date: Thu, 4 Aug 2016 04:29:38 +1000 Subject: [PATCH] adaptivedemux: On EOS, handle it before waking download loop Otherwise, if the download loop wakes too quickly, it might miss the last_ret value update from the processing thread and loop again. --- gst-libs/gst/adaptivedemux/gstadaptivedemux.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gst-libs/gst/adaptivedemux/gstadaptivedemux.c b/gst-libs/gst/adaptivedemux/gstadaptivedemux.c index 7ce861bd21..42be3e030e 100644 --- a/gst-libs/gst/adaptivedemux/gstadaptivedemux.c +++ b/gst-libs/gst/adaptivedemux/gstadaptivedemux.c @@ -2306,13 +2306,13 @@ _src_event (GstPad * pad, GstObject * parent, GstEvent * event) case GST_EVENT_EOS:{ GST_MANIFEST_LOCK (demux); + gst_adaptive_demux_eos_handling (stream); + g_mutex_lock (&stream->fragment_download_lock); stream->download_finished = TRUE; g_cond_signal (&stream->fragment_download_cond); g_mutex_unlock (&stream->fragment_download_lock); - gst_adaptive_demux_eos_handling (stream); - GST_MANIFEST_UNLOCK (demux); break; }