How does gstreamer handle plugins with the library suffix "-1.0.so"

Philippe Normand phil at base-art.net
Wed Jun 13 09:30:25 UTC 2018


On Tue, 2018-06-12 at 15:33 -0700, jimfcarroll wrote:
> Hello,
> 
> I started another thread but have my problem narrowed down to the
> name of
> the plugin library. 
> 
> Under 1.8.3 my plugin library was named libgstbreakout-1.0.so. This
> worked
> fine. The very same code built against 1.14.0 results in the same
> library
> but the plugin no loner loads unless I change the name of the library
> to
> libgstbreakout.so.
> 

See the release notes for 1.14. The .so filename should now match the
plugin name.

https://gstreamer.freedesktop.org/releases/1.14/

"""
The default plugin entry point has changed. This will only affect
plugins that are recompiled against new GStreamer headers. Binary
plugins using the old entry point will continue to work. However,
plugins that are recompiled must have matching plugin names in
GST_PLUGIN_DEFINE and filenames, as the plugin entry point for shared
plugins is now deduced from the plugin filename. This means you can no
longer have a plugin called foo living in a file called libfoobar.so or
such, the plugin filename needs to match. This might cause problems
with some external third party plugin modules when they get rebuilt
against GStreamer 1.14.
"""

> I can see in the code why this is happening. For both gst-inspect-1.0 
> and
> gst-launch-1.0 I get something like the following using GST_DEBUG=:*7
> 
> gstpluginloader.c:719:do_plugin_load: Plugin scanner loading file
> /tmp/libgstbreakout-1.0.so. tag 2
> gstplugin.c:760:_priv_gst_plugin_load_file_for_registry: attempt to
> load
> plugin "/tmp/libgstbreakout-1.0.so"
> gstplugin.c:811:_priv_gst_plugin_load_file_for_registry: Could not
> find
> symbol 'gst_plugin_breakout_1_get_desc', falling back to
> gst_plugin_desc
> gstplugin.c:818:_priv_gst_plugin_load_file_for_registry: Could not
> find
> plugin entry point in "/tmp/libgstbreakout-1.0.so"
> 
> The function extract_symname is confusing the '.' in 1.0 with the '.'
> before
> .so and assumes the name of the plugin implied by the file is
> breakout_1 (it
> also converts all '-'s to '_').
> 
> How is it that many (most?) plugins are named libgstXXXXXX-1.0.so.
> This is
> EXPECTED in the Java API. As a matter of fact, you need to bend over
> backward every time you run your program if it's not by adding
> template
> strings as a -D parameter on the command line.
> 
> What's the right way to do this?
> 
> Thanks
> Jim
> 
> 
> 
> 
> --
> 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