Question about static build GStreamer library still uses GLib2 dynamically
scerveau
scerveau at gmail.com
Sun May 8 07:15:30 UTC 2022
Dear Bo-Kai,
According to my understanding the problem is related to the JAVA binding
and how they load the libraries.
It seems that https://github.com/gstreamer-java/gst1-java-core is not
ready to use gstreamer-full.
You should open an issue or propose a patch to support gstreamer-full there.
Regards.
On 5/7/22 09:15, Bo-Kai Huang via gstreamer-devel wrote:
> Hi all,
>
> I want to have my application run on different hosts, and these hosts
> may not have GStreamer packages installed. My idea is to build a
> static GStreamer library, and load the static library when my
> application starts.
>
> I use the source code of 1.20.2 from GitLab, and the following are my
> build commands:
> > meson --buildtype=release \
> --strip \
> --wrap-mode=forcefallback \
> -Dauto_features=disabled \
> -Dbad=enabled \
> -Dgst-plugins-base:videotestsrc=enabled \
> -Dgst-plugins-good:autodetect=enabled \
> --default-library=static \
> -Dintrospection=disabled \
> build
> > ninja -C build
>
> I can get the static library libgstreamer-full-1.0.so
> <http://libgstreamer-full-1.0.so> in the build folder, and I create a
> symbolic link of libgstreamer-1.0.so <http://libgstreamer-1.0.so> to it.
> Then I update $LD_LIBRARY_PATH on my Linux environment and run a Java
> example to load the GStreamer library.
> This is the Java example I used:
> https://github.com/gstreamer-java/gst1-java-examples/blob/master/BasicPipeline/src/main/java/org/freedesktop/gstreamer/examples/BasicPipeline.java
>
> I expect that the library has its dependencies linked statically, but
> the application fails and I find the following messages:
> INFO: Trying libgstreamer-1.0.so <http://libgstreamer-1.0.so>
> May 07, 2022 6:30:45 AM com.sun.jna.NativeLibrary loadLibrary
> INFO: Found library 'gstreamer-1.0' at libgstreamer-1.0.so
> <http://libgstreamer-1.0.so>
> May 07, 2022 6:30:45 AM com.sun.jna.NativeLibrary loadLibrary
> INFO: Trying /usr/lib64/libglib-2.0.so.0.5600.1
> May 07, 2022 6:30:45 AM com.sun.jna.NativeLibrary loadLibrary
> INFO: Found library 'glib-2.0' at /usr/lib64/libglib-2.0.so.0.5600.1
> May 07, 2022 6:30:45 AM com.sun.jna.NativeLibrary loadLibrary
> INFO: Trying /usr/lib64/libgobject-2.0.so.0.5600.1
> May 07, 2022 6:30:45 AM com.sun.jna.NativeLibrary loadLibrary
> INFO: Found library 'gobject-2.0' at /usr/lib64/libgobject-2.0.so.0.5600.1
>
> (gst1-java-core:31071): GLib-CRITICAL **: 06:30:45.770:
> g_datalist_id_set_data_full: assertion 'key_id > 0' failed
> #
> # A fatal error has been detected by the Java Runtime Environment:
> #
> # SIGSEGV (0xb) at pc=0x00007f1bd8d8abdb, pid=31071,
> tid=0x00007f1c38bee700
>
> The application still uses the GLib and GObject on the System.
> Would anyone help to guide me on the correct way to build and use the
> static GStreamer library for the Java example?
> Thanks.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20220508/c42abfd7/attachment.htm>
More information about the gstreamer-devel
mailing list