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