summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorEdward Hervey <edward@centricular.com>2017-09-05 14:26:52 +0200
committerEdward Hervey <bilboed@bilboed.com>2017-09-05 14:28:54 +0200
commit58a2df001c0753317e80f05d31e083ec09ad9d78 (patch)
treec127ca76995fcbfbbbd6cc9dd1bd58287d688b54 /tests
parent4d2382fb27378bfaec938f5c747fe68500f5c499 (diff)
check: Fix usage of dual probes
Using two (or more) probes on the same pad where one of the probe returns HANDLED or DROP is tricky since the other probes might not be called. Instead use regular probes and a proper pad (the sinkpad already existed, it only required to be activated and have a dummy chain function for the events/buffers to be received/handled properly)
Diffstat (limited to 'tests')
-rw-r--r--tests/check/libs/aggregator.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/tests/check/libs/aggregator.c b/tests/check/libs/aggregator.c
index 5f6ae2e2a..067d184f8 100644
--- a/tests/check/libs/aggregator.c
+++ b/tests/check/libs/aggregator.c
@@ -341,12 +341,10 @@ downstream_probe_cb (GstPad * pad, GstPadProbeInfo * info, TestData * test)
GST_EVENT_FLUSH_STOP)
g_atomic_int_inc (&test->flush_stop_events);
}
-
- gst_mini_object_unref (info->data);
-
- return GST_PAD_PROBE_HANDLED;
+ return GST_PAD_PROBE_OK;
}
+
/*
* Not thread safe, will create a new ChainData which contains
* an activated src pad linked to a requested sink pad of @agg, and
@@ -382,6 +380,14 @@ _chain_data_clear (ChainData * data)
gst_object_unref (data->sinkpad);
}
+static GstFlowReturn
+_test_chain (GstPad * pad, GstObject * object, GstBuffer * buffer)
+{
+ /* accept any buffers */
+ gst_buffer_unref (buffer);
+ return GST_FLOW_OK;
+}
+
static void
_test_data_init (TestData * test, gboolean needs_flushing)
{
@@ -398,11 +404,11 @@ _test_data_init (TestData * test, gboolean needs_flushing)
num_sink_pads += 1;
test->sinkpad = gst_pad_new_from_static_template (&sinktemplate, pad_name);
+ gst_pad_set_chain_function (test->sinkpad, _test_chain);
+ gst_pad_set_active (test->sinkpad, TRUE);
g_free (pad_name);
fail_unless (gst_pad_link (test->srcpad, test->sinkpad) == GST_PAD_LINK_OK);
- gst_pad_add_probe (test->srcpad, GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM |
- GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM |
- GST_PAD_PROBE_TYPE_EVENT_FLUSH,
+ gst_pad_add_probe (test->srcpad, GST_PAD_PROBE_TYPE_EVENT_FLUSH,
(GstPadProbeCallback) downstream_probe_cb, test, NULL);
} else {
gst_pad_add_probe (test->srcpad, GST_PAD_PROBE_TYPE_BUFFER,