baseparse: Return FLOW_FLUSHING when pushing a frame on a pad that has been flushed
authorThibault Saunier <tsaunier@gnome.org>
Thu, 17 Jul 2014 13:53:53 +0000 (15:53 +0200)
committerThibault Saunier <tsaunier@gnome.org>
Thu, 17 Jul 2014 15:46:16 +0000 (17:46 +0200)
When going to READY, it is possible that we are still pusing a frame but that
our srcpad has already been set to flushing. In that case we should not
post any error on the bus but instead cleanly return FLOW_FLUSHING.

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

libs/gst/base/gstbaseparse.c

index fb31c9e..fdc2673 100644 (file)
@@ -2358,6 +2358,9 @@ gst_base_parse_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
   /* ERRORS */
 no_caps:
   {
+    if (GST_PAD_IS_FLUSHING (parse->srcpad))
+      return GST_FLOW_FLUSHING;
+
     GST_ELEMENT_ERROR (parse, STREAM, DECODE, ("No caps set"), (NULL));
     return GST_FLOW_ERROR;
   }