baseparse: Clear some more state when receiving FLUSH_STOP
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Mon, 5 Mar 2012 12:12:18 +0000 (13:12 +0100)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Mon, 5 Mar 2012 12:12:18 +0000 (13:12 +0100)
Like pending serialized events and the currently cached buffer.

libs/gst/base/gstbaseparse.c

index 81f459e..de96241 100644 (file)
@@ -460,6 +460,14 @@ gst_base_parse_clear_queues (GstBaseParse * parse)
   g_queue_foreach (&parse->priv->queued_frames,
       (GFunc) gst_base_parse_frame_free, NULL);
   g_queue_clear (&parse->priv->queued_frames);
+
+  gst_buffer_replace (&parse->priv->cache, NULL);
+
+  g_list_foreach (parse->priv->pending_events, (GFunc) gst_event_unref, NULL);
+  g_list_free (parse->priv->pending_events);
+  parse->priv->pending_seeks = NULL;
+
+  gst_event_replace (&parse->priv->pending_segment, NULL);
 }
 
 static void