basetransform: Ensure to set the RECONFIGURE flag again if reconfiguration failed
authorSebastian Dröge <sebastian@centricular.com>
Thu, 17 Nov 2016 15:37:16 +0000 (17:37 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Fri, 18 Nov 2016 10:04:18 +0000 (12:04 +0200)
It might've failed just because of flushing or other things, and we
should retry again on the next possibility if something ever calls in
here again.

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

libs/gst/base/gstbasetransform.c

index 5b08cec..1a4ac85 100644 (file)
@@ -1482,6 +1482,10 @@ gst_base_transform_reconfigure (GstBaseTransform * trans)
   }
 
 done:
+
+  if (!ret)
+    gst_pad_mark_reconfigure (trans->srcpad);
+
   return ret;
 }
 
@@ -1940,6 +1944,8 @@ gst_base_transform_sink_eventfunc (GstBaseTransform * trans, GstEvent * event)
       /* clear any pending reconfigure flag */
       gst_pad_check_reconfigure (trans->srcpad);
       ret = gst_base_transform_setcaps (trans, trans->sinkpad, caps);
+      if (!ret)
+        gst_pad_mark_reconfigure (trans->srcpad);
 
       forward = FALSE;
       break;