From d35fbcf6f1ee340b8ad643e5d5dec3992d507246 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Sun, 26 Aug 2012 21:45:44 +0100 Subject: [PATCH] tests: fix icydemux unit test Was waiting for a tag message on the bus, which would never come, because elements don't post those themselves any more but let sinks post them from tag events. Only that there are no sinks in this unit test. --- tests/check/elements/icydemux.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tests/check/elements/icydemux.c b/tests/check/elements/icydemux.c index 4c8155a93e..ae63a80a68 100644 --- a/tests/check/elements/icydemux.c +++ b/tests/check/elements/icydemux.c @@ -72,6 +72,27 @@ typefind_succeed (GstTypeFind * tf, gpointer private) } } +static gboolean +test_event_func (GstPad * pad, GstObject * parent, GstEvent * event) +{ + GST_LOG_OBJECT (pad, "%s event: %" GST_PTR_FORMAT, + GST_EVENT_TYPE_NAME (event), event); + + /* a sink would post tag events as messages, so do the same here, + * esp. since we're polling on the bus waiting for TAG messages.. */ + if (GST_EVENT_TYPE (event) == GST_EVENT_TAG) { + GstTagList *taglist; + + gst_event_parse_tag (event, &taglist); + + gst_bus_post (bus, gst_message_new_tag (GST_OBJECT (pad), + gst_tag_list_copy (taglist))); + } + + gst_event_unref (event); + return TRUE; +} + static void icydemux_found_pad (GstElement * src, GstPad * pad, gpointer data) { @@ -86,6 +107,7 @@ icydemux_found_pad (GstElement * src, GstPad * pad, gpointer data) srcpad = gst_element_get_static_pad (icydemux, "src"); fail_if (srcpad == NULL, "Failed to get srcpad from icydemux"); gst_pad_set_chain_function (sinkpad, gst_check_chain_func); + gst_pad_set_event_function (sinkpad, test_event_func); GST_DEBUG ("checking srcpad %p refcount", srcpad); /* 1 from element, 1 from signal, 1 from us */