baseparse: fix crash on seek from streaming thread on newsegment event
authorTim-Philipp Müller <tim.muller@collabora.co.uk>
Thu, 18 Aug 2011 19:44:01 +0000 (20:44 +0100)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Thu, 18 Aug 2011 19:44:01 +0000 (20:44 +0100)
Event if it's not allowed, we can easily prevent it, so let's do
that.

https://bugzilla.gnome.org/show_bug.cgi?id=656771

libs/gst/base/gstbaseparse.c

index 59865c2..65160c3 100644 (file)
@@ -1851,10 +1851,14 @@ gst_base_parse_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
     parse->priv->close_segment = NULL;
   }
   if (G_UNLIKELY (parse->priv->pending_segment)) {
+    GstEvent *pending_segment;
+
+    pending_segment = parse->priv->pending_segment;
+    parse->priv->pending_segment = NULL;
+
     GST_DEBUG_OBJECT (parse, "%s push pending segment",
         parse->priv->pad_mode == GST_ACTIVATE_PULL ? "loop" : "chain");
-    gst_pad_push_event (parse->srcpad, parse->priv->pending_segment);
-    parse->priv->pending_segment = NULL;
+    gst_pad_push_event (parse->srcpad, pending_segment);
 
     /* have caps; check identity */
     gst_base_parse_check_media (parse);