Making sure one plugin in always loaded

Rodolfo Zitellini xhero.gm at gmail.com
Tue Jun 23 06:46:50 UTC 2020


Hi everybody!
First of all sorry if this is a terrible noob question, I've been reading
the docs and searching the net but I could not find a definitive solution.

I'm developing a small camera application for an embedded system, it is
built in QT and it uses the qt gst player plugin to render on a windows.
Works very well and I'm happy.
My problem is that in the field people are quite brutes and instead of
waiting the 10 seconds it takes to power off the device, they open it and
pull the battery. We have huge warnings not to do it and people get scolded
quite often for it, but unfortunately I can't control what others do in the
field. This leads to a couple annoyances, other than corrupted filesystems
(in the future the FS will be read only, but for now this is not yet an
option).

What happens is that gstreamer upon reboot apparently "blacklists" the qt
player plugin from the registry and does not load it, ending up with no
video on screen. I have not yet figured out why this happens, but it does
happen from time to time in development if the camera program crashes. The
only way to restart video is to remove the registry .bin file and have
gstreamer reload all plugins.

Now when loading the camera program there is a bash script with a bit of
gymnastics to make sure GST_REGISTRY_UPDATE is set or not set in case of
crash and the .bin file is deleted if needed.

Hence my question: is there a way I can force a plugin to be loaded from
code? Ideally every time I start my program when I call gst_init I would
like to have either the registry/cache rebuilt or the qt player always
loaded. Is this possible?
Any pointers are welcome!
Thanks,
Rodolfo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20200623/9febdb47/attachment-0001.htm>


More information about the gstreamer-devel mailing list