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)
committerTim-Philipp Müller <tim@centricular.com>
Sat, 26 Oct 2019 19:56:19 +0000 (20:56 +0100)
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 5b33125..8b28a97 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);