[farsight2/master] Verify that buffers are actually sent
Olivier Crête
olivier.crete at collabora.co.uk
Tue Dec 23 15:21:37 PST 2008
---
tests/check/main/rtpsendcodecs.c | 31 +++++++++++++++++++++----------
1 files changed, 21 insertions(+), 10 deletions(-)
diff --git a/tests/check/main/rtpsendcodecs.c b/tests/check/main/rtpsendcodecs.c
index 3e4d24b..ec51a4c 100644
--- a/tests/check/main/rtpsendcodecs.c
+++ b/tests/check/main/rtpsendcodecs.c
@@ -109,17 +109,20 @@ _bus_callback (GstBus *bus, GstMessage *message, gpointer user_data)
}
static GstElement *
-build_recv_pipeline (GCallback handoff_handler, gpointer data, gint *port)
+build_recv_pipeline (GCallback havedata_handler, gpointer data, gint *port)
{
GstElement *pipeline;
GstElement *src;
GstElement *sink;
+ GstPad *pad = NULL;
pipeline = gst_pipeline_new (NULL);
src = gst_element_factory_make ("udpsrc", NULL);
sink = gst_element_factory_make ("fakesink", NULL);
+ g_object_set (sink, "sync", FALSE, NULL);
+
ts_fail_unless (pipeline && src && sink, "Could not make pipeline(%p)"
" or src(%p) or sink(%p)", pipeline, src, sink);
@@ -128,7 +131,11 @@ build_recv_pipeline (GCallback handoff_handler, gpointer data, gint *port)
ts_fail_unless (gst_element_link (src, sink), "Could not link udpsrc"
" and fakesink");
- g_signal_connect (sink, "handoff", handoff_handler, data);
+ pad = gst_element_get_static_pad (sink, "sink");
+
+ gst_pad_add_buffer_probe (pad, havedata_handler, data);
+
+ gst_object_ref (pad);
ts_fail_if (gst_element_set_state (pipeline, GST_STATE_PLAYING) ==
GST_STATE_CHANGE_FAILURE, "Could not start recv pipeline");
@@ -183,7 +190,7 @@ set_codecs (struct SimpleTestConference *dat, FsStream *stream)
}
static void
-one_way (GCallback handoff_handler, gpointer data)
+one_way (GCallback havedata_handler, gpointer data)
{
FsStream *stream = NULL;
FsParticipant *participant = NULL;
@@ -218,7 +225,7 @@ one_way (GCallback handoff_handler, gpointer data)
error->code, error->message);
ts_fail_if (stream == NULL, "Could not make stream, but no GError!");
- recv_pipeline = build_recv_pipeline (handoff_handler, NULL, &port);
+ recv_pipeline = build_recv_pipeline (havedata_handler, NULL, &port);
g_debug ("port is %d", port);
@@ -242,12 +249,12 @@ one_way (GCallback handoff_handler, gpointer data)
g_main_loop_unref (loop);
}
-gint digit = 1;
+gint digit = 0;
gboolean sending = FALSE;
+gboolean received = FALSE;
static void
-send_dmtf_handoff_handler (GstElement *fakesink, GstBuffer *buf, GstPad *pad,
- gpointer user_data)
+send_dmtf_havedata_handler (GstPad *pad, GstBuffer *buf, gpointer user_data)
{
gchar *data;
@@ -257,7 +264,7 @@ send_dmtf_handoff_handler (GstElement *fakesink, GstBuffer *buf, GstPad *pad,
ts_fail_if (data[0] != digit, "Not sending the right digit");
-
+ received = TRUE;
}
static gboolean
@@ -273,9 +280,13 @@ start_stop_sending_dtmf (gpointer data)
FS_DTMF_METHOD_RTP_RFC4733), "Could not stop telephony event");
sending = FALSE;
+ ts_fail_unless (received == TRUE, "Did not receive any buffer for digit %d",
+ digit);
+ received = FALSE;
+
if (digit > FS_DTMF_EVENT_D)
{
- digit = 1;
+ digit = 0;
g_main_loop_quit (loop);
return FALSE;
}
@@ -296,7 +307,7 @@ start_stop_sending_dtmf (gpointer data)
GST_START_TEST (test_senddtmf_event)
{
g_timeout_add (200, start_stop_sending_dtmf, NULL);
- one_way (G_CALLBACK (send_dmtf_handoff_handler), NULL);
+ one_way (G_CALLBACK (send_dmtf_havedata_handler), NULL);
}
GST_END_TEST;
--
1.5.6.5
More information about the farsight-commits
mailing list