baseparse: always attempt to push if not-linked
authorEdward Hervey <edward.hervey@collabora.co.uk>
Mon, 2 Apr 2012 13:13:24 +0000 (15:13 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Mon, 2 Apr 2012 13:27:14 +0000 (15:27 +0200)
This avoids ending up with plenty of pending data (since we'll only
 try to parse/push one frame from the incoming buffer).

Fixes increasing memory consumption when parsers aren't linked

Conflicts:

libs/gst/base/gstbaseparse.c

libs/gst/base/gstbaseparse.c

index 27661f1..8067e53 100644 (file)
@@ -2606,7 +2606,7 @@ gst_base_parse_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
     /* probably already implicitly unmapped due to adapter operation,
      * but for good measure ... */
     gst_adapter_unmap (parse->priv->adapter);
-    if (ret != GST_FLOW_OK) {
+    if (ret != GST_FLOW_OK && ret != GST_FLOW_NOT_LINKED) {
       goto done;
     }
     if (skip == 0 && flush == 0) {