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