GNOME Bugzilla – Bug 638599
GST_PTR_FORMAT causes crashes if GLib-internal printf is used but system provides register_printf_specifier
Last modified: 2011-01-04 17:07:20 UTC
The debug output for dfbvideosink causes a segmentation fault. It seems the format string is incorrect. line 1224 -> GST_DEBUG_OBJECT (dfbvideosink, "returning our caps %" GST_PTR_FORMAT, caps); should probably be -> GST_DEBUG_OBJECT (dfbvideosink, "returning our caps %s" GST_PTR_FORMAT, caps); There also seems to be problems at lines 217, 901, 924, 1157, 1256, 1700, 1773, and 1777
the file is ext/directfb/dfbvideosink.c by the way
That code is valid (GST_PTR_FORMAT will expand to the proper formatter). Without a stack trace from the crash it's very hard to determine what caused it. Can you get us a stack trace? Please see http://live.gnome.org/GettingTraces for more information on how to do so. Thanks in advance!
here is the backtrace from gdb
+ Trace 225388
That looks like GStreamer core was built against a libc that supports printf format extensions (e.g. *glibc) (hence GST_PTR_FORMAT is defined to "P" not "p"), but then for some reason GLib's internal printf is used instead of the system one with the extension. This should fix it: commit 98900a43c1964f5fd37e80e5f45518bbe875413b Author: Tim-Philipp Müller <tim.muller@collabora.co.uk> Date: Tue Jan 4 00:48:15 2011 +0000 gstinfo: don't use printf extensions if GLib isn't using the system printf Might help with https://bugzilla.gnome.org/show_bug.cgi?id=638599 Please re-open if it's still a problem with that patch (after recompiling the directfb plugin as well).
That seems to fix the problem. Thanks!
Thanks for confirming.