[MOVED FROM GST-P-FARSIGHT] Empty the queue on flush start
authorOlivier Crete <olivier.crete@collabora.co.uk>
Wed, 14 May 2008 23:26:43 +0000 (23:26 +0000)
committerEdward Hervey <bilboed@bilboed.com>
Tue, 17 Feb 2009 18:29:05 +0000 (19:29 +0100)
20080514232643-3e2dc-5a3f52a3fd3771164dea95bd14410d76b4fce2aa.gz

gst/liveadder/liveadder.c

index d234502165679e9439a708ccbbd6784f41f470bd..3ad1e1924c20f0a45ce844b8fd508caa337bb2b1 100644 (file)
@@ -437,6 +437,11 @@ gst_live_adder_flush_start (GstLiveAdder * adder)
   GST_OBJECT_LOCK (adder);
   /* mark ourselves as flushing */
   adder->srcresult = GST_FLOW_WRONG_STATE;
+
+  /* Empty the queue */
+  g_queue_foreach (adder->buffers, (GFunc) gst_mini_object_unref, NULL);
+  while (g_queue_pop_head (adder->buffers)) {}
+
   /* unlock clock, we just unschedule, the entry will be released by the
    * locking streaming thread. */
   if (adder->clock_id)