From 046551105b8d47f1f2fb0f856ff12531d0f5aa08 Mon Sep 17 00:00:00 2001 From: Nicolas Dufresne Date: Wed, 8 Jun 2016 12:34:53 -0400 Subject: [PATCH] tee: Properly handle return value when only 1 pad This patch handle the case when you have 1 pad (so the fast path is being used) but this pad is removed. If we are in allow-not-linked, we should return GST_FLOW_OK, otherwise, we should return GST_FLOW_UNLINKED and ignore the meaningless return value obtained from pushing. https://bugzilla.gnome.org/show_bug.cgi?id=767413 --- plugins/elements/gsttee.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/elements/gsttee.c b/plugins/elements/gsttee.c index 78cbff7ade..361a15cf5f 100644 --- a/plugins/elements/gsttee.c +++ b/plugins/elements/gsttee.c @@ -656,12 +656,15 @@ gst_tee_handle_data (GstTee * tee, gpointer data, gboolean is_list) ret = gst_pad_push (pad, GST_BUFFER_CAST (data)); } - gst_object_unref (pad); + if (GST_TEE_PAD_CAST (pad)->removed) + ret = GST_FLOW_NOT_LINKED; if (ret == GST_FLOW_NOT_LINKED && tee->allow_not_linked) { ret = GST_FLOW_OK; } + gst_object_unref (pad); + return ret; }