basesrc: Flush-stop starts live task in paused
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Fri, 27 Mar 2015 22:20:37 +0000 (18:20 -0400)
committerNicolas Dufresne <nicolas.dufresne@collabora.com>
Fri, 27 Mar 2015 23:03:30 +0000 (19:03 -0400)
The flush-stop event should not restart the task for live sources unless
the element is playing. This was breaking seeks in pause with the rtpsrc.

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

libs/gst/base/gstbasesrc.c

index 211a715..912172b 100644 (file)
@@ -1800,6 +1800,12 @@ gst_base_src_send_event (GstElement * element, GstEvent * event)
       GST_OBJECT_LOCK (src->srcpad);
       start = (GST_PAD_MODE (src->srcpad) == GST_PAD_MODE_PUSH);
       GST_OBJECT_UNLOCK (src->srcpad);
+
+      if (src->is_live) {
+        if (!src->live_running)
+          start = FALSE;
+      }
+
       if (start)
         gst_pad_start_task (src->srcpad, (GstTaskFunction) gst_base_src_loop,
             src->srcpad, NULL);