summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorJan Schmidt <jan@centricular.com>2017-03-17 22:32:19 +1100
committerJan Schmidt <jan@centricular.com>2017-03-22 11:42:53 +1100
commite571002dcbe78fe8a205c43eae3962f3b8d815ae (patch)
tree9babd37f842d250851fd7a11b61bad6d54305b45 /libs
parentb84cb752005b8cf15f079afd046b777c870dc687 (diff)
baseparse: Don't forget error returns when processing more
If parsing returns a non-OK flow return in the middle of processing an input buffer, don't overwrite that if a later return is OK again - the subclass might return not-linked in the middle, and then discard subsequent data without pushing while returning OK. A later success doesn't invalidate the earlier failure, but we should continue processing after not-linked, so as to keep parse state consistent. https://bugzilla.gnome.org/show_bug.cgi?id=779831
Diffstat (limited to 'libs')
-rw-r--r--libs/gst/base/gstbaseparse.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libs/gst/base/gstbaseparse.c b/libs/gst/base/gstbaseparse.c
index 7386168d7..df67dd081 100644
--- a/libs/gst/base/gstbaseparse.c
+++ b/libs/gst/base/gstbaseparse.c
@@ -3237,7 +3237,8 @@ gst_base_parse_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
ret = old_ret;
goto done;
}
- old_ret = ret;
+ if (old_ret == GST_FLOW_OK)
+ old_ret = ret;
}
done: