[gst-devel] gstreamer head broken

Brian Cameron Brian.Cameron at Sun.COM
Wed Jul 2 08:26:08 CEST 2003

I notice the following problem in gstreamer head...

Running various programs like gst-register or gst-inspect segfault when
in gst_atomic_int_init() on the line 429 of gstatomic_impl.h that reads
as follows

  429     aint->lock = g_mutex_new ();

Here is the stacktrace.

=>[6] gst_atomic_int_init(aint = 0xff330b50, val = 1), line 429 in 
  [7] _gst_debug_init(), line 134 in "gstinfo.c"
  [8] init_pre(), line 388 in "gst.c"
  [9] init_popt_callback(context = 0x348b0, reason = POPT_CALLBACK_REASON_PRE, 
option = (nil), arg = (nil), data = (nil)), line 624 in "gst.c"
  [10] invokeCallbacksPRE(0x348b0, 0xff1e7c44, 0xff139938, 0xfed3a000, 0x0, 
0xfc00), at 0xfed60f20
  [11] invokeCallbacksPRE(0x348b0, 0xffbfe7e4, 0x34e58, 0x72000000, 0x7200, 
0xfc00), at 0xfed60edc
  [12] poptGetContext(0xff1bd980, 0x0, 0x348b0, 0xffbfe7c8, 0x0, 0x348b0), at 
  [13] gst_init_check_with_popt_table(argc = 0xffbfe9bc, argv = 0xffbfe9c0, 
popt_options = 0xffbfe914), line 264 in "gst.c"
  [14] gst_init_with_popt_table(argc = 0xffbfe9bc, argv = 0xffbfe9c0, 
popt_options = 0xffbfe914), line 206 in "gst.c"
  [15] main(argc = 1, argv = 0xffbfe9dc), line 989 in "gst-inspect.c"

I notice in init_popt_callback that POPT_CALLBACK_REASON_PRE calls init_pre,
which eventually calls the above g_mutext_new, and the only place that 
g_thread_init gets called is in the case POPT_CALLBACK_REASON_POST.
At least on Solaris, POPT_CALLBACK_REASON_PRE gets called first, so the init 
never gets called.

Moving the g_thread_init to init_pre seems to fix the above problem, but
then I get tons of these errors when I run gst-register, and it does not
seem to actually register anything:

(process:29437): GLib-GObject-WARNING **: invalid cast from (NULL) pointer
   to `GObject'

So it seems that head is pretty broken.  I'm assuming that all this is
not Solaris specific.

I also notice that gst-editor fails to build with the following error
when building libs/gst/debug-ui/debug-ui.c

"debug-ui.c", line 66: undefined symbol: GST_CAT_MAX_CATEGORY

The GST_CAT_MAX_CATEGORY seems to have been removed.


More information about the gstreamer-devel mailing list