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)
GST_EVENT_FLUSH_STOP)
g_atomic_int_inc (&test->flush_stop_events);
}
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
/*
* Not thread safe, will create a new ChainData which contains
* an activated src pad linked to a requested sink pad of @agg, and
gst_object_unref (data->sinkpad);
}
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)
{
static void
_test_data_init (TestData * test, gboolean needs_flushing)
{
num_sink_pads += 1;
test->sinkpad = gst_pad_new_from_static_template (&sinktemplate, pad_name);
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);
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,
(GstPadProbeCallback) downstream_probe_cb, test, NULL);
} else {
gst_pad_add_probe (test->srcpad, GST_PAD_PROBE_TYPE_BUFFER,