[Bug 769740] New: gst_deinit: Not working as expected

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Thu Aug 11 11:18:11 UTC 2016


https://bugzilla.gnome.org/show_bug.cgi?id=769740

            Bug ID: 769740
           Summary: gst_deinit: Not working as expected
    Classification: Platform
           Product: GStreamer
           Version: 1.8.2
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gstreamer (core)
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: nnoell3 at gmail.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

Hi there,

I am not sure if this is a bug or a misunderstanding but gst_deinit() does not
seem to do what I expect. The documentation says it "cleans up any resources
created by gst_init()" so I would expect something like that to work:

  int main() {
    gst_init(NULL, NULL);
    gst_deinit();
    gst_init(NULL, NULL);

    GstElement *element = gst_element_factory_make("identity", "identity");
    assert(element);
    g_object_unref(element);

    gst_deinit();
  }

But it doesn't as the element pointer is always NULL. If gst_init() cannot be
used after a gst_deinit() call, what is the purpose of having a gst_deinit()
API? It would be really nice for the testsuites to be able to go back to a NULL
state before testing new units.

Also, libasan's address sanitizer shows a 16384 bytes memory leak in the
following code:

  int main() {
    gst_init(NULL, NULL);
    gst_deinit();
  }

So the resources are not completely freed when calling gst_deinit(), could that
explain why gst_init() does not work after gst_deinit()?

Thanks,

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list