Help with Gst.Iterator.find_custom() in python

Mathieu Duponchelle mathieu at centricular.com
Tue May 25 12:35:10 UTC 2021


Hey, it looks like you're missing the gst-python overrides:

https://gitlab.freedesktop.org/gstreamer/gst-python/-/blob/master/gi/overrides/Gst.py#L233-246

On 5/25/21 2:09 PM, Marianna S. Buschle via gstreamer-devel wrote:
> I did manage to make it work like this:
>
> def gst_bin_get_by_gtype(bin, type_name):
>     factory = Gst.ElementFactory.find(type_name)
>     if factory is None:
>         print("No factory found for " + type_name)
>         return None
>     type = factory.get_element_type()
>     print("[" + bin.get_name() + "]: looking up child element of type " +
> type.name)
>     
>     children = bin.iterate_recurse()        
>     if children is None:
>         print("Iterate Error")
>         return None
>         
>     elem = children.next().elem
>     while elem:
>         #print(elem.name)
>         #print(elem.__gtype__)
>         if elem.__gtype__ == type:
>             return elem
>         elem = children.next().elem
>         
>     return None
>
> And found out that since gstreamer 1.18 I can also use:
>
>     #from gst 1.18
>     children = bin.iterate_all_by_element_factory_name(type_name)
>     if children is None:
>         print("Iterate Error")
>         return None
>     res = []
>     elem = children.next().elem
>     while elem:
>         print(elem.name)
>         #print(elem.__gtype__)
>         res.append(elem)
>         elem = children.next().elem
>     return res
>
>
>
> --
> Sent from: http://gstreamer-devel.966125.n4.nabble.com/
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


More information about the gstreamer-devel mailing list