basesrc: stop when negotiation fails
authorWim Taymans <wim.taymans@collabora.co.uk>
Fri, 9 Dec 2011 09:01:16 +0000 (10:01 +0100)
committerWim Taymans <wim.taymans@collabora.co.uk>
Fri, 9 Dec 2011 09:01:16 +0000 (10:01 +0100)
libs/gst/base/gstbasesrc.c

index 0386a7f..ee05abd 100644 (file)
@@ -2450,7 +2450,7 @@ gst_base_src_loop (GstPad * pad)
   /* check if we need to renegotiate */
   if (gst_pad_check_reconfigure (pad)) {
     if (!gst_base_src_negotiate (src))
-      GST_DEBUG_OBJECT (src, "Failed to renegotiate");
+      goto not_negotiated;
   }
 
   GST_LIVE_LOCK (src);
@@ -2607,6 +2607,12 @@ done:
   return;
 
   /* special cases */
+not_negotiated:
+  {
+    GST_DEBUG_OBJECT (src, "Failed to renegotiate");
+    ret = GST_FLOW_NOT_NEGOTIATED;
+    goto pause;
+  }
 flushing:
   {
     GST_DEBUG_OBJECT (src, "we are flushing");