gstharness: don't push the event to the queue before processing
authorHåvard Graff <havard.graff@gmail.com>
Tue, 3 Dec 2019 11:23:01 +0000 (11:23 +0000)
committerHåvard Graff <havard.graff@gmail.com>
Tue, 3 Dec 2019 11:23:01 +0000 (11:23 +0000)
The application might pull and unref it by the time the code gets
around to check it for EOS.

libs/gst/check/gstharness.c

index d6c26f6..a82d0b4 100644 (file)
@@ -277,13 +277,13 @@ gst_harness_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
     gst_object_unref (fwdpad);
     HARNESS_LOCK (h);
   } else {
-    g_async_queue_push (priv->sink_event_queue, event);
     if (GST_EVENT_TYPE (event) == GST_EVENT_EOS) {
       g_mutex_lock (&priv->buf_or_eos_mutex);
       priv->eos_received = TRUE;
       g_cond_signal (&priv->buf_or_eos_cond);
       g_mutex_unlock (&priv->buf_or_eos_mutex);
     }
+    g_async_queue_push (priv->sink_event_queue, event);
   }
   HARNESS_UNLOCK (h);