GNOME Bugzilla – Bug 670588
generic/states check fails: GST_IS_PAD (pad) warning caused by facedetect element
Last modified: 2012-03-15 18:49:07 UTC
This is on Mandriva Cooker x86_64 with gst-plugins-bad 0.10.23. The checks fail with this error: make[1]: Entering directory `/home/goetz/rpm/BUILD/gst-plugins-bad-0.10.23/tests/check' libdc1394 error: Failed to initialize libdc1394 Running suite(s): states libdc1394 error: Failed to initialize libdc1394 Unexpected critical/warning: gst_pad_is_linked: assertion `GST_IS_PAD (pad)' failed libdc1394 error: Failed to initialize libdc1394 Unexpected critical/warning: gst_pad_is_linked: assertion `GST_IS_PAD (pad)' failed libdc1394 error: Failed to initialize libdc1394 Unexpected critical/warning: gst_pad_is_linked: assertion `GST_IS_PAD (pad)' failed 0%: Checks: 3, Failures: 3, Errors: 0 gstcheck.c:72:F:general:test_state_changes_up_and_down_seq:0: Unexpected critical/warning: gst_pad_is_linked: assertion `GST_IS_PAD (pad)' failed gstcheck.c:72:F:general:test_state_changes_up_seq:0: Unexpected critical/warning: gst_pad_is_linked: assertion `GST_IS_PAD (pad)' failed gstcheck.c:72:F:general:test_state_changes_down_seq:0: Unexpected critical/warning: gst_pad_is_linked: assertion `GST_IS_PAD (pad)' failed FAIL: generic/states
Created attachment 208197 [details] debug log from the check this is the debug output with debug level 5.
hmm, dc1394src is on the ignore list. Seem to be opencv releated: 0:00:00.656075589 6649 0x257d800 DEBUG GST_PLUGIN_LOADING gstplugin.c:737:gst_plugin_load_file: attempt to load plugin "../../ext/opencv/.libs/libgstopencv.so" libdc1394 error: Failed to initialize libdc1394
What makes the unit test fail, however, is the GST_IS_PAD critical. Götz, could you run: -bad/tests/check $ G_DEBUG=fatal_warnings GST_DEBUG=check:5 make generic/states.check 2>dbg.log please ?
Err, what I meant was: -bad/tests/check $ G_DEBUG=fatal_warnings make generic/states.gdb and then get a stack trace when it fails :)
Here's the backtrace: libdc1394 error: Failed to initialize libdc1394 [tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device] GStreamer-CRITICAL **: gst_pad_is_linked: assertion `GST_IS_PAD (pad)' failed Program received signal SIGTRAP, Trace/breakpoint trap. g_logv (log_domain=0x7ffff798b5b8 "GStreamer", log_level=<optimized out>, format=0x7ffff7432e7a "%s: assertion `%s' failed", args1=0x7fffffffda78) at gmessages.c:765 765 g_private_set (&g_log_depth, GUINT_TO_POINTER (depth)); (gdb) bt
+ Trace 229839
Should be fixed in git now (but may require other commits too, like the pad template fix): commit d405ea2e632363e560dd3784177f249196bb2bc1 Author: Tim-Philipp Müller <tim.muller@collabora.co.uk> Date: Thu Mar 15 16:52:44 2012 +0000 faceoverlay: fix weird pad creation code The element would create normal pads in its instance_init function, and then later in NULL->READY create the elements it needs, remove the pads created in the instance_init function, and add new ghost pads instead. Not without saving the external peer pads of the old pads of course, which it would promptly re-link to the new ghost pads. Do all of that a bit differently. Fixes the generic/states.check unit test. https://bugzilla.gnome.org/show_bug.cgi?id=670588 commit 55b0f1e60168571ebbbd7a99ab51a687607a6619 Author: Tim-Philipp Müller <tim.muller@collabora.co.uk> Date: Thu Mar 15 17:42:56 2012 +0000 faceoverlay: fix pad templates Use generic and unspecififed rgb/caps for now. The exact caps supported depend on the facedetect element and rsvgoverlay. It's not clear how this worked before, since facedetect only accepts 24-bit RGB, but the caps advertised 32-bit ARGB/BGRA. In any case, we don't want to force anything really, so that if any of those elements acquires support for additional formats we pick those up automatically. commit e1e827d364942ceb6f6fd61c6ae4bb5ff3db6fdc Author: Tim-Philipp Müller <tim.muller@collabora.co.uk> Date: Thu Mar 15 17:26:14 2012 +0000 rsvgoverlay: fix crash due to double adapter unref