<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Dear Bo-Kai,</p>
    <p>According to my understanding the problem is related to the JAVA
      binding and how they load the libraries. <br>
    </p>
    <p>It seems that <a class="moz-txt-link-freetext" href="https://github.com/gstreamer-java/gst1-java-core">https://github.com/gstreamer-java/gst1-java-core</a> is
      not ready to use gstreamer-full.</p>
    <p>You should open an issue or propose a patch to support
      gstreamer-full there.</p>
    <p>Regards.<br>
    </p>
    <div class="moz-cite-prefix">On 5/7/22 09:15, Bo-Kai Huang via
      gstreamer-devel wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAJnEXmSi9VM+xWG6TTyD5R=B+axvd9xgbyM=dVcjapOA5SzpyQ@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div dir="ltr">
          <div dir="ltr">
            <div dir="ltr">
              <div dir="ltr">
                <div dir="ltr">
                  <div dir="ltr">
                    <div dir="ltr">
                      <div dir="ltr">
                        <div dir="ltr">
                          <div dir="ltr">
                            <div dir="ltr">
                              <div dir="ltr">
                                <div dir="ltr">
                                  <div dir="ltr">Hi all,
                                    <div><br>
                                    </div>
                                    <div>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.</div>
                                    <div><br>
                                    </div>
                                    <div>I use the source code of 1.20.2
                                      from GitLab, and the following are
                                      my build commands:</div>
                                    <div>> meson --buildtype=release
                                      \ </div>
                                    <div>            --strip \ </div>
                                    <div>           
                                       --wrap-mode=forcefallback \</div>
                                    <div>           
                                       -Dauto_features=disabled \ </div>
                                    <div>              -Dbad=enabled \</div>
                                    <div>             
                                      -Dgst-plugins-base:videotestsrc=enabled
                                      \ </div>
                                    <div>             
                                      -Dgst-plugins-good:autodetect=enabled
                                      \ </div>
                                    <div>             
                                      --default-library=static \ </div>
                                    <div>             
                                      -Dintrospection=disabled \ </div>
                                    <div>              build</div>
                                    <div>> ninja -C build</div>
                                    <div><br>
                                    </div>
                                    <div>I can get the static library <a
href="http://libgstreamer-full-1.0.so" moz-do-not-send="true">libgstreamer-full-1.0.so</a>
                                      in the build folder, and I create
                                      a symbolic link of <a
                                        href="http://libgstreamer-1.0.so"
                                        moz-do-not-send="true">libgstreamer-1.0.so</a>
                                      to it.</div>
                                    <div>Then I update $LD_LIBRARY_PATH
                                      on my Linux environment and run a
                                      Java example to load the GStreamer
                                      library.</div>
                                    <div>This is the Java example I
                                      used:</div>
                                    <div><a
href="https://github.com/gstreamer-java/gst1-java-examples/blob/master/BasicPipeline/src/main/java/org/freedesktop/gstreamer/examples/BasicPipeline.java"
                                        moz-do-not-send="true"
                                        class="moz-txt-link-freetext">https://github.com/gstreamer-java/gst1-java-examples/blob/master/BasicPipeline/src/main/java/org/freedesktop/gstreamer/examples/BasicPipeline.java</a></div>
                                    <div><br>
                                    </div>
                                    <div>I expect that the library has
                                      its dependencies linked
                                      statically, but the application
                                      fails and I find the following
                                      messages:</div>
                                    <div>INFO: Trying <a
                                        href="http://libgstreamer-1.0.so"
                                        moz-do-not-send="true">libgstreamer-1.0.so</a></div>
                                    <div>May 07, 2022 6:30:45 AM
                                      com.sun.jna.NativeLibrary
                                      loadLibrary</div>
                                    <div>INFO: Found library
                                      'gstreamer-1.0' at <a
                                        href="http://libgstreamer-1.0.so"
                                        moz-do-not-send="true">libgstreamer-1.0.so</a></div>
                                    <div>May 07, 2022 6:30:45 AM
                                      com.sun.jna.NativeLibrary
                                      loadLibrary<br>
                                    </div>
                                    <div>
                                      <div>INFO: Trying
                                        /usr/lib64/libglib-2.0.so.0.5600.1</div>
                                      <div>May 07, 2022 6:30:45 AM
                                        com.sun.jna.NativeLibrary
                                        loadLibrary</div>
                                      <div>INFO: Found library
                                        'glib-2.0' at
                                        /usr/lib64/libglib-2.0.so.0.5600.1</div>
                                      <div>May 07, 2022 6:30:45 AM
                                        com.sun.jna.NativeLibrary
                                        loadLibrary</div>
                                    </div>
                                    <div>
                                      <div>INFO: Trying
                                        /usr/lib64/libgobject-2.0.so.0.5600.1</div>
                                      <div>May 07, 2022 6:30:45 AM
                                        com.sun.jna.NativeLibrary
                                        loadLibrary</div>
                                      <div>INFO: Found library
                                        'gobject-2.0' at
                                        /usr/lib64/libgobject-2.0.so.0.5600.1</div>
                                      <div><br>
                                      </div>
                                      <div>(gst1-java-core:31071):
                                        GLib-CRITICAL **: 06:30:45.770:
                                        g_datalist_id_set_data_full:
                                        assertion 'key_id > 0' failed</div>
                                      <div>#</div>
                                      <div># A fatal error has been
                                        detected by the Java Runtime
                                        Environment:</div>
                                      <div>#</div>
                                      <div>#  SIGSEGV (0xb) at
                                        pc=0x00007f1bd8d8abdb,
                                        pid=31071,
                                        tid=0x00007f1c38bee700</div>
                                    </div>
                                    <div><br>
                                    </div>
                                    <div>The application still uses the
                                      GLib and GObject on the System.<br>
                                      Would anyone help to guide me on
                                      the correct way to build and use
                                      the static GStreamer library for
                                      the Java example?</div>
                                    <div>Thanks.</div>
                                    <div><br>
                                    </div>
                                  </div>
                                </div>
                              </div>
                            </div>
                          </div>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
  </body>
</html>