tee: Check for the removed pad flag also in the slow pushing path
authorSebastian Dröge <sebastian@centricular.com>
Thu, 24 Oct 2019 22:39:50 +0000 (01:39 +0300)
committerMathieu Duponchelle <mduponchelle1@gmail.com>
Thu, 24 Oct 2019 22:49:41 +0000 (22:49 +0000)
If a pad is currently being released we don't want to forward the
FLUSHING flow return but instead consider it as NOT_LINKED. FLUSHING
would also cause upstream to be FLUSHING.

This part was missed in a3c4a3201a705eb1934ceeea34d1ca42d4571c07 and
resulted in a different (and wrong) workaround in
a96002bb28c21b30fb9338a4620ad20504c70aa5.

plugins/elements/gsttee.c

index 5b33125900bcf2f84aad11733d8d5d028697c106..8b28a97aec47f712e8597d2983c6ddfa684cd05c 100644 (file)
@@ -945,6 +945,8 @@ restart:
 
       GST_OBJECT_LOCK (tee);
       /* keep track of which pad we pushed and the result value */
+      if (GST_TEE_PAD_CAST (pad)->removed)
+        ret = GST_FLOW_NOT_LINKED;
       GST_TEE_PAD_CAST (pad)->pushed = TRUE;
       GST_TEE_PAD_CAST (pad)->result = ret;
       gst_object_unref (pad);