+2005-07-16 Wim Taymans <wim@fluendo.com>
+
+ * check/gst/gstbin.c: (GST_START_TEST):
+ Make elements silent as the deep_notify refs the
+ parent, which might make the test fail.
+
+ * gst/gstghostpad.c: (gst_ghost_pad_do_activate_push):
+ Don't hold the lock for too long.
+
2005-07-16 Tim-Philipp Müller <tim at centricular dot net>
* gst/base/gstbasesrc.c: (gst_base_src_default_negotiate):
src = gst_element_factory_make ("fakesrc", NULL);
fail_if (src == NULL, "Could not create fakesrc");
+ /* need to silence the element as the deep_notify refcounts the
+ * parents while running */
+ g_object_set (G_OBJECT (src), "silent", TRUE, NULL);
gst_bin_add (GST_BIN (pipeline), src);
sink = gst_element_factory_make ("fakesink", NULL);
+ /* need to silence the element as the deep_notify refcounts the
+ * parents while running */
+ g_object_set (G_OBJECT (sink), "silent", TRUE, NULL);
fail_if (sink == NULL, "Could not create fakesink");
gst_bin_add (GST_BIN (pipeline), sink);
ret = gst_proxy_pad_do_activatepush (pad, active);
GST_LOCK (pad);
+ if ((internal = GST_GHOST_PAD (pad)->internal))
+ gst_object_ref (internal);
+ GST_UNLOCK (pad);
- internal = GST_GHOST_PAD (pad)->internal;
-
- if (internal)
+ if (internal) {
ret &= gst_pad_activate_push (internal, active);
-
- GST_UNLOCK (pad);
+ gst_object_unref (internal);
+ }
return ret;
}
src = gst_element_factory_make ("fakesrc", NULL);
fail_if (src == NULL, "Could not create fakesrc");
+ /* need to silence the element as the deep_notify refcounts the
+ * parents while running */
+ g_object_set (G_OBJECT (src), "silent", TRUE, NULL);
gst_bin_add (GST_BIN (pipeline), src);
sink = gst_element_factory_make ("fakesink", NULL);
+ /* need to silence the element as the deep_notify refcounts the
+ * parents while running */
+ g_object_set (G_OBJECT (sink), "silent", TRUE, NULL);
fail_if (sink == NULL, "Could not create fakesink");
gst_bin_add (GST_BIN (pipeline), sink);