basesrc: Make sure to always hold the LIVE_LOCK when going to the flushing label
authorSebastian Dröge <sebastian@centricular.com>
Sun, 20 Apr 2014 09:59:02 +0000 (11:59 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Sun, 20 Apr 2014 10:01:01 +0000 (12:01 +0200)
https://bugzilla.gnome.org/show_bug.cgi?id=728596

libs/gst/base/gstbasesrc.c

index 9f2e52c..fc5a3af 100644 (file)
@@ -2684,10 +2684,12 @@ gst_base_src_loop (GstPad * pad)
   if (gst_pad_check_reconfigure (pad)) {
     if (!gst_base_src_negotiate (src)) {
       gst_pad_mark_reconfigure (pad);
-      if (GST_PAD_IS_FLUSHING (pad))
+      if (GST_PAD_IS_FLUSHING (pad)) {
+        GST_LIVE_LOCK (src);
         goto flushing;
-      else
+      } else {
         goto negotiate_failed;
+      }
     }
   }