[Bug 746620] New: Segfault while executing g_value_unset at gst_structure_free in Android

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Sun Mar 22 13:34:00 PDT 2015


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

            Bug ID: 746620
           Summary: Segfault while executing g_value_unset at
                    gst_structure_free in Android
    Classification: Platform
           Product: GStreamer
           Version: 1.4.5
                OS: other
            Status: NEW
          Severity: blocker
          Priority: Normal
         Component: gstreamer (core)
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: msielski at o2.pl
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

Hi,

I have tried gstreamer-1.0-android-armv7-debug-1.4.5. I have used it with one
of the examples found at
http://cgit.freedesktop.org/~slomo/gst-sdk-tutorials/tree/gst-sdk/tutorials
"android-tutorial-3"

I have found out that the application is carshing when I rotate a phone.
I tried to track down the issue and I came to the conclusion that there
is an issue in the prebuilt gstreamer itself.

While rotating the phone the Activity is beeing destroyed and following native
code is executed: gst_native_finalize function in tutorial-3.c. The call
triggers exit from the gst main loop in app_function (tutorial-3.c).

The application segfaults while executing following statement
gst_element_set_state (data->pipeline, GST_STATE_NULL);

I have debugged gst_element_set_state function and found out
that the sefaults happened in
g_value_unset (&field->value); // i == 3

Here is the stack trace:
g_value_unset()                (gststructure.c, line 383)
gst_structure_free()            (gstquery.c, line 195)
_gst_query_free()            (gstminiobject, line 465)
gst_mini_object_unref()            (gstquery.h, line 237)
gst_query_unref()            (gstbasetransform.c, line 816)
gst_base_transform_set_allocation()    (gstbasetransform.c, line 2372)
gst_base_transform_activate()        (gstbasetransform.c, line 2390)
gst_base_transform_sink_activate_mode()    ()
gst_pad_activate_mode()            (gstpad.c, line 1031)
gst_pad_set_active()            (gstelement.c, line 2687)
activate_pads()                (gstiterator.c, line 612)
gst_iterator_fold()            (gstelement.c, line 2707)
iterator_activate_fold_with_resync()    (gstelement.c, line 2751)
gst_element_pads_activate()        (gstelement.c, line 2815)
gst_element_change_state_func()        ()
gst_element_change_state()        ()
gst_element_set_state_func()        ()
gst_element_set_state()            ()
gst_bin_element_set_state()        ()
gst_bin_change_state_func()        ()
gst_pipeline_change_state()        ()
gst_element_change_state()        ()
gst_element_set_state_func()        ()
gst_element_set_state()            (tutorial-3.c, line 199)
app_function()
libc.so!__thread_entry()
libc.so!pthread_create()
0x00000000

Thank you for help in advance

-- 
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