bin: Add method to find elements by factory name
authorNiels De Graef <niels.degraef@barco.com>
Fri, 15 Nov 2019 14:49:32 +0000 (15:49 +0100)
committerNiels De Graef <niels.degraef@barco.com>
Fri, 20 Dec 2019 13:29:19 +0000 (14:29 +0100)
commit0cb3940c94b06993060da358367a702e5ac6f8ad
treeb9582658726a7de2834b90accf343315502f2357
parent1d549ea3244fe1ac3e24ee1722eb7b3574888d36
bin: Add method to find elements by factory name

A common use case of a dynamically built pipeline is that you want to
(conditionally) find a certain element, e.g. the `rtpbin`s in a
`uridecodebin`. If that element has a fixed name inside its parent bin
(and only has a single instance) this can be easily done by
`gst_bin_get_by_name()`.

If there are multiple instances of the element however, you can only use
`gst_bin_iterate_all_by_interface()`, but this doesn't work if you don't
have the specific `GType` (which is often the case, due to plugins being
dynamically loaded). As such, another fallback could be to use the
well-known name of the element's factory (in case of our example, this
is of course `"rtpbin"`).
gst/gstbin.c
gst/gstbin.h
tests/check/gst/gstbin.c