monoscope: Mark pad as needing reconfiguration again if it failed
authorSebastian Dröge <sebastian@centricular.com>
Thu, 17 Nov 2016 17:59:26 +0000 (19:59 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Fri, 18 Nov 2016 10:04:45 +0000 (12:04 +0200)
And return FLUSHING instead of NOT_NEGOTIATED on flushing pads.

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

gst/monoscope/gstmonoscope.c

index 3e70256..8aebbdb 100644 (file)
@@ -312,8 +312,13 @@ ensure_negotiated (GstMonoscope * monoscope)
 
   /* we don't know an output format yet, pick one */
   if (reconfigure || !gst_pad_has_current_caps (monoscope->srcpad)) {
-    if (!gst_monoscope_src_negotiate (monoscope))
-      return GST_FLOW_NOT_NEGOTIATED;
+    if (!gst_monoscope_src_negotiate (monoscope)) {
+      gst_pad_mark_reconfigure (monoscope->srcpad);
+      if (GST_PAD_IS_FLUSHING (monoscope->srcpad))
+        return GST_FLOW_FLUSHING;
+      else
+        return GST_FLOW_NOT_NEGOTIATED;
+    }
   }
   return GST_FLOW_OK;
 }