From dcf8c3e8b0e54f753201dc60773530ba075c2eac Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Fri, 15 Aug 2014 13:31:53 +0200 Subject: [PATCH] discoverer: Set 'processing = FALSE' when done discovering SYNC This avoids a race where we would get new tag but we are already prerolled and analyzing results. It is the way it is supposed to be handled as stated in comment: "If preroll is complete, drop these tags - the collected information is possibly already being processed and adding more tags would be racy" --- gst-libs/gst/pbutils/gstdiscoverer.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gst-libs/gst/pbutils/gstdiscoverer.c b/gst-libs/gst/pbutils/gstdiscoverer.c index da650f3..244b374 100644 --- a/gst-libs/gst/pbutils/gstdiscoverer.c +++ b/gst-libs/gst/pbutils/gstdiscoverer.c @@ -1462,6 +1462,11 @@ handle_current_sync (GstDiscoverer * dc) dc->priv->current_info->result = GST_DISCOVERER_TIMEOUT; } + DISCO_LOCK (dc); + dc->priv->processing = FALSE; + DISCO_UNLOCK (dc); + + GST_DEBUG ("Done"); g_timer_stop (timer); -- 2.7.4