[gst-embedded] Any API to extract the parent element information?

Gireesh Kumar M gireesh.mnair at gmail.com
Thu Nov 6 08:03:43 PST 2008


Hi Edward,

Thanks for your reply.
Yes, it's essential to check the return values, but this is just a sample
code by which I wanted to demonstrate what I'm trying to do.
What I'm keen to know are
1. is there any api which will directly give me the parent element details
(something like gst_get_factory_name())
2. Is it possible to extract the element information by any other means?

Thanks again,
Gireesh

On Thu, Nov 6, 2008 at 7:54 PM, Edward Hervey <edward.hervey at collabora.co.uk
> wrote:

> On Thu, 2008-11-06 at 18:46 +0530, Gireesh Kumar M wrote:
> > Hi All,
> >
> > Is there any way to extract the parent element information from a
> > gstreamer element?
> > I tried it using the following code snippets but none of them worked.
> >
> >
> > GstElement *elem =
> > GST_ELEMENT_CAST(gst_element_get_parent(GST_ELEMENT(pad)));
>
>   Yay, casting a GstPad to a GstElement (!?!?!?).
>  Yay, not checking for the return value of gst_element_get_parent().
>
> > g_print("In element %s\n", gst_element_get_name(elem)); //-------this
> > displays current element name properly
> >
> > elem = GST_ELEMENT_CAST(gst_element_get_parent(elem));
>
>   Yay, not checking for the return value of gst_element_get_parent().
>
> > g_print("Parent element is %s\n",
> > gst_element_get_name(elem)); //---this displays pipeline0
> >
> >
> > elem = GST_ELEMENT_CAST(gst_element_get_parent(elem));  //--this
>
>   Yay, not checking for the return value of gst_element_get_parent().
>
> >  throws the following error
> > g_print("Grand Parent element is %s\n", gst_element_get_name(elem));
> >
> > /*(gst-launch-0.10:488): GStreamer-CRITICAL **: gst_object_get_name:
> > assertion `GS
> > T_IS_OBJECT (object)' failed
> > Caught SIGSEGV accessing address (nil)
> > Spinning.  Please run 'gdb gst-launch 488' to continue debugging,
> > Ctrl-C to quit
> > , or Ctrl-\ to dump core. */
> >
> >
> > Then I tried,
> >
> > GstElement *elem =
> > GST_ELEMENT_CAST(gst_element_get_parent(GST_ELEMENT(pad)));
>
>   Yay, not checking for the return value of gst_element_get_parent().
>  YAY, casting a GstPad to a GstElement (!?!?!?!)
>
> > elem = GST_ELEMENT_CAST(gst_element_get_parent(elem));
> >
>  Yay, not checking for the return value of gst_element_get_parent().
>
> > GstElementClass *kl = GST_ELEMENT_GET_CLASS(elem);
>
>   Yay, not checking for the return value of GST_ELEMENT_GET_CLASS().
>
> > g_print("In element %s\n",
> > gst_object_get_name((GstObject*)(kl.details->longname));
> >
> > This again gave pipeline0, where I'm expecting the actual name of the
> > element. It would be great if anyone can guide me.
>
>   So, to summarize: You're asking for the parent of the parent of the
> pad.
>  The parent of the pad : The element to which the pad (maybe) belongs.
>  The parent of the element to which the pad belongs : a pipeline.
>
>  There's nothing wrong in what it's returning, but please... if you
> haven't noticed by now... always check the return values of
> functions/methods. It'll avoid you from calling methods/functions with
> invalid arguments.
>
>    Edward
>
> >
> > Many thanks in advance,
> > Gireesh
> > -------------------------------------------------------------------------
> > This SF.Net email is sponsored by the Moblin Your Move Developer's
> challenge
> > Build the coolest Linux based applications with Moblin SDK & win great
> prizes
> > Grand prize is a trip for two to an Open Source event anywhere in the
> world
> > http://moblin-contest.org/redirect.php?banner_id=100&url=/
> > _______________________________________________ Gstreamer-embedded
> mailing list Gstreamer-embedded at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-embedded
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-embedded/attachments/20081106/52ea8c75/attachment.htm>


More information about the Gstreamer-embedded mailing list