From 660621ca99325e83f522a5ca9b1dac8195a4dd05 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Wed, 6 Mar 2002 16:14:34 +0000 Subject: [PATCH] fix bug when requesting pads by name Original commit message from CVS: * fix bug when requesting pads by name * added api: gst_element_get_managing_bin () --- gst/gstelement.c | 17 ++++++++++++++++- gst/gstelement.h | 2 ++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/gst/gstelement.c b/gst/gstelement.c index 24900762e9..a973e1b3aa 100644 --- a/gst/gstelement.c +++ b/gst/gstelement.c @@ -735,7 +735,7 @@ gst_element_request_pad_by_name (GstElement *element, const gchar *name) } } - if (templ == NULL) + if (!templ_found) return NULL; pad = gst_element_request_pad (element, templ, req_name); @@ -1908,3 +1908,18 @@ gst_element_install_std_props (GstElementClass * klass, const char *first_name, va_end (args); } + +GstBin* +gst_element_get_managing_bin (GstElement *element) +{ + GstBin *bin; + + g_return_val_if_fail (element != NULL, NULL); + + bin = GST_BIN (gst_object_get_parent (GST_OBJECT_CAST (element))); + + while (bin && !GST_FLAG_IS_SET (GST_OBJECT_CAST (bin), GST_BIN_FLAG_MANAGER)) + bin = GST_BIN (gst_object_get_parent (GST_OBJECT_CAST (bin))); + + return bin; +} diff --git a/gst/gstelement.h b/gst/gstelement.h index 4a25e13527..2cb26d5445 100644 --- a/gst/gstelement.h +++ b/gst/gstelement.h @@ -246,6 +246,8 @@ GstElementFactory* gst_element_get_factory (GstElement *element); void gst_element_install_std_props (GstElementClass *klass, const char *first_name, ...); +GstBin* gst_element_get_managing_bin (GstElement *element); + /* *