Skip to content

Gst.init() increasing INIT_COUNT too early #140

Open
@bjarven

Description

@bjarven

When I run Gst.init() i sometimes get an Invalid memory access Error thrown by

GST_API.gst_init_check(argv.argcRef, argv.argvRef, error)

But since INIT_COUNT is increased before that call Gst seems to be initialized when it's not.

Perhaps INIT_COUNT should be incremented last in Gst.init(). Something like;

diff --git a/src/org/freedesktop/gstreamer/Gst.java b/src/org/freedesktop/gstreamer/Gst.java
index e1284dc..db1371e 100644
--- a/src/org/freedesktop/gstreamer/Gst.java
+++ b/src/org/freedesktop/gstreamer/Gst.java
@@ -503,7 +503,7 @@ public final class Gst {
         //
         // Only do real init the first time through
         //
-        if (INIT_COUNT.getAndIncrement() > 0) {
+        if (INIT_COUNT.get() > 0) {
             if (CHECK_VERSIONS) {
                 if (requestedVersion.getMinor() > minorVersion) {
                     minorVersion = (int) requestedVersion.getMinor();
@@ -540,6 +540,8 @@ public final class Gst {
         if (CHECK_VERSIONS) {
             minorVersion = requestedVersion.getMinor();
         }
+
+        INIT_COUNT.incrementAndGet();
         
         return argv.toStringArray();
     }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions