diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/check/Makefile.am | 11 | ||||
-rw-r--r-- | tests/check/elements/funnel.c | 184 | ||||
-rw-r--r-- | tests/check/elements/rtcpfilter.c | 36 | ||||
-rw-r--r-- | tests/check/msn/conference.c | 19 | ||||
-rw-r--r-- | tests/check/raw/conference.c | 44 | ||||
-rw-r--r-- | tests/check/rtp/conference.c | 29 | ||||
-rw-r--r-- | tests/check/rtp/generic.c | 4 | ||||
-rw-r--r-- | tests/check/rtp/recvcodecs.c | 21 | ||||
-rw-r--r-- | tests/check/rtp/sendcodecs.c | 58 | ||||
-rw-r--r-- | tests/check/transmitter/fake-filter.c | 69 | ||||
-rw-r--r-- | tests/check/transmitter/generic.c | 8 | ||||
-rw-r--r-- | tests/check/transmitter/multicast.c | 6 | ||||
-rw-r--r-- | tests/check/transmitter/nice.c | 6 | ||||
-rw-r--r-- | tests/check/transmitter/rawudp.c | 6 | ||||
-rw-r--r-- | tests/check/transmitter/shm.c | 9 |
15 files changed, 143 insertions, 367 deletions
diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am index 55fbc388..662780df 100644 --- a/tests/check/Makefile.am +++ b/tests/check/Makefile.am @@ -48,16 +48,16 @@ check_PROGRAMS = \ transmitter/rawudp \ transmitter/multicast \ transmitter/nice \ - transmitter/shm \ raw/conference \ + elements/rtcpfilter \ rtp/codecs \ rtp/sendcodecs \ rtp/conference \ rtp/recvcodecs \ msn/conference \ - utils/binadded \ - elements/rtcpfilter \ - elements/funnel + utils/binadded +noinst_PROGRAMS = transmitter/shm + AM_CFLAGS = \ $(CFLAGS) \ @@ -172,6 +172,3 @@ utils_binadded_SOURCES = \ elements_rtcpfilter_CFLAGS = $(AM_CFLAGS) elements_rtcpfilter_SOURCES = elements/rtcpfilter.c elements_rtcpfilter_LDADD = $(LDADD) -lgstrtp-@GST_MAJORMINOR@ - -elements_funnel_CFLAGS = $(AM_CFLAGS) -elements_funnel_SOURCES = elements/funnel.c diff --git a/tests/check/elements/funnel.c b/tests/check/elements/funnel.c deleted file mode 100644 index 61f78e2f..00000000 --- a/tests/check/elements/funnel.c +++ /dev/null @@ -1,184 +0,0 @@ -/* Farstream unit tests for the fsfunnel - * - * Copyright (C) 2008 Collabora, Nokia - * @author: Olivier Crete <olivier.crete@collabora.co.uk> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -*/ - - -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif - -#include <gst/check/gstcheck.h> - -struct TestData { - GstElement *funnel; - GstPad *funnelsrc, *funnelsink11, *funnelsink22; - GstPad *mysink, *mysrc1, *mysrc2; - GstCaps *mycaps; -}; - -static void -setup_test_objects (struct TestData *td, GstPadChainFunction chain_func, GstPadBufferAllocFunction alloc_func) -{ - td->mycaps = gst_caps_new_simple ("test/test", NULL); - - td->funnel = gst_element_factory_make ("fsfunnel", NULL); - - td->funnelsrc = gst_element_get_static_pad (td->funnel, "src"); - fail_unless (td->funnelsrc != NULL); - - td->funnelsink11 = gst_element_get_request_pad (td->funnel, "sink11"); - fail_unless (td->funnelsink11 != NULL); - fail_unless (!strcmp (GST_OBJECT_NAME (td->funnelsink11), "sink11")); - - td->funnelsink22 = gst_element_get_request_pad (td->funnel, "sink22"); - fail_unless (td->funnelsink22 != NULL); - fail_unless (!strcmp (GST_OBJECT_NAME (td->funnelsink22), "sink22")); - - fail_unless (gst_element_set_state (td->funnel, GST_STATE_PLAYING) == - GST_STATE_CHANGE_SUCCESS); - - td->mysink = gst_pad_new ("sink", GST_PAD_SINK); - gst_pad_set_chain_function (td->mysink, chain_func); - gst_pad_set_bufferalloc_function (td->mysink, alloc_func); - gst_pad_set_active (td->mysink, TRUE); - gst_pad_set_caps (td->mysink, td->mycaps); - - td->mysrc1 = gst_pad_new ("src1", GST_PAD_SRC); - gst_pad_set_active (td->mysrc1, TRUE); - gst_pad_set_caps (td->mysrc1, td->mycaps); - - td->mysrc2 = gst_pad_new ("src2", GST_PAD_SRC); - gst_pad_set_active (td->mysrc2, TRUE); - gst_pad_set_caps (td->mysrc2, td->mycaps); - - fail_unless (GST_PAD_LINK_SUCCESSFUL( - gst_pad_link (td->funnelsrc, td->mysink))); - - fail_unless (GST_PAD_LINK_SUCCESSFUL( - gst_pad_link (td->mysrc1, td->funnelsink11))); - - fail_unless (GST_PAD_LINK_SUCCESSFUL( - gst_pad_link (td->mysrc2, td->funnelsink22))); - -} - -static void -release_test_objects (struct TestData *td) -{ - gst_pad_set_active (td->mysink, FALSE); - gst_pad_set_active (td->mysrc1, FALSE); - gst_pad_set_active (td->mysrc1, FALSE); - - gst_object_unref (td->mysink); - gst_object_unref (td->mysrc1); - gst_object_unref (td->mysrc2); - - fail_unless (gst_element_set_state (td->funnel, GST_STATE_NULL) == - GST_STATE_CHANGE_SUCCESS); - - gst_object_unref (td->funnelsrc); - gst_object_unref (td->funnelsink11); - gst_element_release_request_pad (td->funnel, td->funnelsink11); - gst_object_unref (td->funnelsink22); - gst_element_release_request_pad (td->funnel, td->funnelsink22); - - gst_caps_unref (td->mycaps); - gst_object_unref (td->funnel); -} - -static gint bufcount = 0; -static gint alloccount = 0; - -static GstFlowReturn -chain_ok (GstPad *pad, GstBuffer *buffer) -{ - bufcount++; - - gst_buffer_unref (buffer); - - return GST_FLOW_OK; -} - -static GstFlowReturn -alloc_ok (GstPad *pad, - guint64 offset, - guint size, - GstCaps *caps, - GstBuffer **buffer) -{ - alloccount++; - - fail_unless (buffer != NULL); - fail_unless (*buffer == NULL); - - *buffer = gst_buffer_new_and_alloc(size); - gst_buffer_set_caps (*buffer, caps); - GST_BUFFER_OFFSET (*buffer) = offset; - - return GST_FLOW_OK; -} - -GST_START_TEST (test_funnel_simple) -{ - struct TestData td; - GstBuffer *buf1 = NULL; - GstBuffer *buf2 = NULL; - - setup_test_objects (&td, chain_ok, alloc_ok); - - bufcount = 0; - alloccount = 0; - - fail_unless (gst_pad_push (td.mysrc1, gst_buffer_new ()) == GST_FLOW_OK); - fail_unless (gst_pad_push (td.mysrc2, gst_buffer_new ()) == GST_FLOW_OK); - - fail_unless (bufcount == 2); - - fail_unless (gst_pad_alloc_buffer (td.mysrc1, 0, 1024, td.mycaps, &buf1) == GST_FLOW_OK); - fail_unless (gst_pad_alloc_buffer (td.mysrc2, 1024, 1024, td.mycaps, &buf2) == GST_FLOW_OK); - - fail_unless (alloccount == 2); - - gst_buffer_unref (buf1); - gst_buffer_unref (buf2); - - release_test_objects (&td); -} -GST_END_TEST; - -static Suite * -funnel_suite (void) -{ - Suite *s = suite_create ("funnel"); - TCase *tc_chain; - GLogLevelFlags fatal_mask; - - fatal_mask = g_log_set_always_fatal (G_LOG_FATAL_MASK); - fatal_mask |= G_LOG_LEVEL_WARNING | G_LOG_LEVEL_CRITICAL; - g_log_set_always_fatal (fatal_mask); - - tc_chain = tcase_create ("funnel simple"); - tcase_add_test (tc_chain, test_funnel_simple); - suite_add_tcase (s, tc_chain); - - return s; -} - -GST_CHECK_MAIN (funnel); - diff --git a/tests/check/elements/rtcpfilter.c b/tests/check/elements/rtcpfilter.c index 73551edc..f503247f 100644 --- a/tests/check/elements/rtcpfilter.c +++ b/tests/check/elements/rtcpfilter.c @@ -28,23 +28,25 @@ #include <gst/rtp/gstrtcpbuffer.h> static GstBuffer * -make_buffer (GstCaps *caps, gboolean have_sr, gint rr_count, +make_buffer (gboolean have_sr, gint rr_count, gboolean have_sdes, gboolean have_bye) { GstRTCPPacket packet; GstBuffer *buf = gst_rtcp_buffer_new (1024); gint i; + GstRTCPBuffer rtcpbuffer = GST_RTCP_BUFFER_INIT; + + gst_rtcp_buffer_map (buf, GST_MAP_READWRITE, &rtcpbuffer); - gst_buffer_set_caps (buf, caps); if (have_sr) { - gst_rtcp_buffer_add_packet (buf, GST_RTCP_TYPE_SR, &packet); + gst_rtcp_buffer_add_packet (&rtcpbuffer, GST_RTCP_TYPE_SR, &packet); gst_rtcp_packet_sr_set_sender_info (&packet, 132132, 12, 12, 12, 12); } if (rr_count >= 0 || !have_sr) { - gst_rtcp_buffer_add_packet (buf, GST_RTCP_TYPE_RR, &packet); + gst_rtcp_buffer_add_packet (&rtcpbuffer, GST_RTCP_TYPE_RR, &packet); gst_rtcp_packet_rr_set_ssrc (&packet, 132132); for (i = 0; i < rr_count; i++) gst_rtcp_packet_add_rb (&packet, 123124+i, 12, 12, 21, 31, 41, 12); @@ -52,7 +54,7 @@ make_buffer (GstCaps *caps, gboolean have_sr, gint rr_count, if (have_sdes) { - gst_rtcp_buffer_add_packet (buf, GST_RTCP_TYPE_SDES, &packet); + gst_rtcp_buffer_add_packet (&rtcpbuffer, GST_RTCP_TYPE_SDES, &packet); gst_rtcp_packet_sdes_add_item (&packet, 123121); gst_rtcp_packet_sdes_add_entry (&packet, GST_RTCP_SDES_EMAIL, 10, (guint8 *) "aa@aaa.com"); @@ -64,11 +66,11 @@ make_buffer (GstCaps *caps, gboolean have_sr, gint rr_count, if (have_bye) { - gst_rtcp_buffer_add_packet (buf, GST_RTCP_TYPE_BYE, &packet); + gst_rtcp_buffer_add_packet (&rtcpbuffer, GST_RTCP_TYPE_BYE, &packet); gst_rtcp_packet_bye_add_ssrc (&packet, 132123); gst_rtcp_packet_bye_set_reason (&packet, "allo"); } - gst_rtcp_buffer_end (buf); + gst_rtcp_buffer_unmap (&rtcpbuffer); return buf; } @@ -78,20 +80,20 @@ GST_START_TEST (test_rtcpfilter) GList *in_buffers = NULL; GList *out_buffers = NULL; GstBuffer *buf = NULL; - GstCaps *caps = gst_caps_new_simple ("application/x-rtcp", NULL); + GstCaps *caps = gst_caps_new_empty_simple ("application/x-rtcp"); gint i; for (i = 0; i < 3; i++) { - buf = make_buffer (caps, FALSE, i, FALSE, FALSE); + buf = make_buffer (FALSE, i, FALSE, FALSE); in_buffers = g_list_append (in_buffers, gst_buffer_ref (buf)); out_buffers = g_list_append (out_buffers, buf); - buf = make_buffer (caps, FALSE, i, TRUE, FALSE); + buf = make_buffer (FALSE, i, TRUE, FALSE); in_buffers = g_list_append (in_buffers, gst_buffer_ref (buf)); out_buffers = g_list_append (out_buffers, buf); - buf = make_buffer (caps, FALSE, i, TRUE, TRUE); + buf = make_buffer (FALSE, i, TRUE, TRUE); in_buffers = g_list_append (in_buffers, gst_buffer_ref (buf)); out_buffers = g_list_append (out_buffers, buf); } @@ -100,20 +102,20 @@ GST_START_TEST (test_rtcpfilter) { in_buffers = g_list_append (in_buffers, - make_buffer (caps, TRUE, i, FALSE, FALSE)); + make_buffer (TRUE, i, FALSE, FALSE)); out_buffers = g_list_append (out_buffers, - make_buffer (caps, FALSE, i, FALSE, FALSE)); + make_buffer (FALSE, i, FALSE, FALSE)); in_buffers = g_list_append (in_buffers, - make_buffer (caps, TRUE, i, TRUE, FALSE)); + make_buffer (TRUE, i, TRUE, FALSE)); out_buffers = g_list_append (out_buffers, - make_buffer (caps, FALSE, i, TRUE, FALSE)); + make_buffer (FALSE, i, TRUE, FALSE)); in_buffers = g_list_append (in_buffers, - make_buffer (caps, TRUE, i, TRUE, TRUE)); + make_buffer (TRUE, i, TRUE, TRUE)); out_buffers = g_list_append (out_buffers, - make_buffer (caps, FALSE, i, TRUE, TRUE)); + make_buffer (FALSE, i, TRUE, TRUE)); } diff --git a/tests/check/msn/conference.c b/tests/check/msn/conference.c index ec391315..1e3a209e 100644 --- a/tests/check/msn/conference.c +++ b/tests/check/msn/conference.c @@ -66,11 +66,6 @@ bus_watch (GstBus *bus, GstMessage *message, gpointer user_data) const gchar *error; ts_fail_unless ( - gst_implements_interface_check (GST_MESSAGE_SRC (message), - FS_TYPE_CONFERENCE), - "Received farstream-error from non-farstream element"); - - ts_fail_unless ( gst_structure_has_field_typed (s, "src-object", G_TYPE_OBJECT), "farstream-error structure has no src-object field"); ts_fail_unless ( @@ -93,11 +88,6 @@ bus_watch (GstBus *bus, GstMessage *message, gpointer user_data) const GValue *value; ts_fail_unless ( - gst_implements_interface_check (GST_MESSAGE_SRC (message), - FS_TYPE_CONFERENCE), - "Received farstream-error from non-farstream element"); - - ts_fail_unless ( gst_structure_has_field_typed (s, "stream", FS_TYPE_STREAM), "farstream-new-local-candidate structure has no stream field"); ts_fail_unless ( @@ -164,13 +154,15 @@ bus_watch (GstBus *bus, GstMessage *message, gpointer user_data) return TRUE; } -static void -pad_probe_cb (GstPad *pad, GstBuffer *buf, gpointer user_data) +static GstPadProbeReturn +pad_probe_cb (GstPad *pad, GstPadProbeInfo *info, gpointer user_data) { count++; if (count > 20) g_main_loop_quit (loop); + + return GST_PAD_PROBE_OK; } static void @@ -189,7 +181,8 @@ stream_src_pad_added (FsStream *stream, GstPad *pad, FsCodec *codec, sinkpad = gst_element_get_static_pad (sink, "sink"); ts_fail_unless (sinkpad != NULL); - gst_pad_add_buffer_probe (sinkpad, G_CALLBACK (pad_probe_cb), dat); + gst_pad_add_probe (sinkpad, GST_PAD_PROBE_TYPE_BUFFER, pad_probe_cb, dat, + NULL); ts_fail_if (GST_PAD_LINK_FAILED (gst_pad_link (pad, sinkpad))); diff --git a/tests/check/raw/conference.c b/tests/check/raw/conference.c index a0a490c8..69a80b78 100644 --- a/tests/check/raw/conference.c +++ b/tests/check/raw/conference.c @@ -23,6 +23,7 @@ # include <config.h> #endif +#include <gst/audio/audio.h> #include <gst/check/gstcheck.h> #include <farstream/fs-conference.h> #include <farstream/fs-stream-transmitter.h> @@ -272,12 +273,10 @@ setup_fakesrc (struct SimpleTestConference *dat) } static gboolean -pad_count_fold (gpointer pad, GValue *val, gpointer user_data) +pad_count_fold (const GValue *item, GValue *val, gpointer user_data) { g_value_set_uint (val, g_value_get_uint (val) + 1); - gst_object_unref (pad); - return TRUE; } @@ -329,7 +328,8 @@ GST_START_TEST (test_rawconference_new) FsStreamDirection dir; dat = setup_simple_conference (1, "fsrawconference", "bob@127.0.0.1"); - st = simple_conference_add_stream (dat, dat, "shm", 0, NULL); + //st = simple_conference_add_stream (dat, dat, "shm", 0, NULL); + st = simple_conference_add_stream (dat, dat, "rawudp", 0, NULL); g_object_get (dat->session, "id", &id, @@ -487,9 +487,8 @@ _bus_callback (GstBus *bus, GstMessage *message, gpointer user_data) const gchar *error, *debug; ts_fail_unless ( - gst_implements_interface_check (GST_MESSAGE_SRC (message), - FS_TYPE_CONFERENCE), - "Received farstream-error from non-farstream element"); + FS_IS_CONFERENCE (GST_MESSAGE_SRC (message)), + "Received farstream-error from non-farstream element"); ts_fail_unless ( gst_structure_has_field_typed (s, "src-object", G_TYPE_OBJECT), @@ -518,9 +517,8 @@ _bus_callback (GstBus *bus, GstMessage *message, gpointer user_data) const GValue *value; ts_fail_unless ( - gst_implements_interface_check (GST_MESSAGE_SRC (message), - FS_TYPE_CONFERENCE), - "Received farstream-error from non-farstream element"); + FS_IS_CONFERENCE (GST_MESSAGE_SRC (message)), + "Received farstream-error from non-farstream element"); ts_fail_unless ( gst_structure_has_field_typed (s, "stream", FS_TYPE_STREAM), @@ -548,9 +546,8 @@ _bus_callback (GstBus *bus, GstMessage *message, gpointer user_data) const GValue *value; ts_fail_unless ( - gst_implements_interface_check (GST_MESSAGE_SRC (message), - FS_TYPE_CONFERENCE), - "Received farstream-error from non-farstream element"); + FS_IS_CONFERENCE (GST_MESSAGE_SRC (message)), + "Received farstream-error from non-farstream element"); ts_fail_unless ( gst_structure_has_field_typed (s, "stream", FS_TYPE_STREAM), @@ -587,10 +584,8 @@ _bus_callback (GstBus *bus, GstMessage *message, gpointer user_data) const GValue *value; ts_fail_unless ( - gst_implements_interface_check (GST_MESSAGE_SRC (message), - FS_TYPE_CONFERENCE), - "Received farstream-current-send-codec-change from non-farstream" - " element"); + FS_IS_CONFERENCE (GST_MESSAGE_SRC (message)), + "Received farstream-error from non-farstream element"); ts_fail_unless ( gst_structure_has_field_typed (s, "session", FS_TYPE_SESSION), @@ -619,10 +614,8 @@ _bus_callback (GstBus *bus, GstMessage *message, gpointer user_data) const GValue *value; ts_fail_unless ( - gst_implements_interface_check (GST_MESSAGE_SRC (message), - FS_TYPE_CONFERENCE), - "Received farstream-local-candidates-prepared from non-farstream" - " element"); + FS_IS_CONFERENCE (GST_MESSAGE_SRC (message)), + "Received farstream-error from non-farstream element"); ts_fail_unless ( gst_structure_has_field_typed (s, "stream", FS_TYPE_STREAM), @@ -1005,10 +998,9 @@ set_initial_codecs ( ts_fail_unless (codecs == NULL, "Shouldn't generate codecs codecs"); - codec = fs_codec_new (0, "audio/x-raw-int," - "endianness=(int)1234, signed=(bool)true, " - "width=(int)16, depth=(int)16, " - "rate=(int)44100", FS_MEDIA_TYPE_AUDIO, 0); + codec = fs_codec_new (0, "audio/x-raw," + "format=(string)"GST_AUDIO_NE (S16)"," + "rate=(int)44100, channels=(int)1", FS_MEDIA_TYPE_AUDIO, 0); codecs = g_list_append (codecs, codec); filtered_codecs = g_list_append (filtered_codecs, codecs->data); @@ -1511,7 +1503,7 @@ fsrawconference_suite (void) tc_chain = tcase_create ("fsrawconference_two_way_shm"); tcase_add_test (tc_chain, test_rawconference_two_way_shm); - suite_add_tcase (s, tc_chain); + //suite_add_tcase (s, tc_chain); tc_chain = tcase_create ("fsrawconference_errors"); tcase_add_test (tc_chain, test_rawconference_errors); diff --git a/tests/check/rtp/conference.c b/tests/check/rtp/conference.c index f2bc9676..b49351e0 100644 --- a/tests/check/rtp/conference.c +++ b/tests/check/rtp/conference.c @@ -22,6 +22,8 @@ # include <config.h> #endif +#include <stdio.h> + #include <gst/check/gstcheck.h> #include <farstream/fs-conference.h> #include <farstream/fs-stream-transmitter.h> @@ -248,11 +250,6 @@ _bus_callback (GstBus *bus, GstMessage *message, gpointer user_data) const gchar *error; ts_fail_unless ( - gst_implements_interface_check (GST_MESSAGE_SRC (message), - FS_TYPE_CONFERENCE), - "Received farstream-error from non-farstream element"); - - ts_fail_unless ( gst_structure_has_field_typed (s, "src-object", G_TYPE_OBJECT), "farstream-error structure has no src-object field"); ts_fail_unless ( @@ -275,11 +272,6 @@ _bus_callback (GstBus *bus, GstMessage *message, gpointer user_data) const GValue *value; ts_fail_unless ( - gst_implements_interface_check (GST_MESSAGE_SRC (message), - FS_TYPE_CONFERENCE), - "Received farstream-error from non-farstream element"); - - ts_fail_unless ( gst_structure_has_field_typed (s, "stream", FS_TYPE_STREAM), "farstream-new-local-candidate structure has no stream field"); ts_fail_unless ( @@ -305,11 +297,6 @@ _bus_callback (GstBus *bus, GstMessage *message, gpointer user_data) const GValue *value; ts_fail_unless ( - gst_implements_interface_check (GST_MESSAGE_SRC (message), - FS_TYPE_CONFERENCE), - "Received farstream-error from non-farstream element"); - - ts_fail_unless ( gst_structure_has_field_typed (s, "stream", FS_TYPE_STREAM), "farstream-new-active-candidate-pair structure" " has no stream field"); @@ -344,12 +331,6 @@ _bus_callback (GstBus *bus, GstMessage *message, gpointer user_data) const GValue *value; ts_fail_unless ( - gst_implements_interface_check (GST_MESSAGE_SRC (message), - FS_TYPE_CONFERENCE), - "Received farstream-current-send-codec-change from non-farstream" - " element"); - - ts_fail_unless ( gst_structure_has_field_typed (s, "session", FS_TYPE_SESSION), "farstream-current-send-codec-changed structure" " has no session field"); @@ -376,12 +357,6 @@ _bus_callback (GstBus *bus, GstMessage *message, gpointer user_data) const GValue *value; ts_fail_unless ( - gst_implements_interface_check (GST_MESSAGE_SRC (message), - FS_TYPE_CONFERENCE), - "Received farstream-local-candidates-prepared from non-farstream" - " element"); - - ts_fail_unless ( gst_structure_has_field_typed (s, "stream", FS_TYPE_STREAM), "farstream-local-candidates-prepared structure" " has no stream field"); diff --git a/tests/check/rtp/generic.c b/tests/check/rtp/generic.c index ca2b246e..c302c78d 100644 --- a/tests/check/rtp/generic.c +++ b/tests/check/rtp/generic.c @@ -211,12 +211,10 @@ setup_fakesrc (struct SimpleTestConference *dat) } static gboolean -pad_count_fold (gpointer pad, GValue *val, gpointer user_data) +pad_count_fold (const GValue *item, GValue *val, gpointer user_data) { g_value_set_uint (val, g_value_get_uint (val) + 1); - gst_object_unref (pad); - return TRUE; } diff --git a/tests/check/rtp/recvcodecs.c b/tests/check/rtp/recvcodecs.c index 4450937e..c4842ab8 100644 --- a/tests/check/rtp/recvcodecs.c +++ b/tests/check/rtp/recvcodecs.c @@ -125,13 +125,19 @@ caps_changed (GstPad *pad, GParamSpec *spec, FsStream *stream) fs_codec_list_destroy (codecs); } -static gboolean -drop_theora_config (GstPad *pad, GstBuffer *buffer, gpointer user_data) +static GstPadProbeReturn +drop_theora_config (GstPad *pad, GstPadProbeInfo *info, gpointer user_data) { - guint8 *payload = gst_rtp_buffer_get_payload (buffer); + GstBuffer *buffer = GST_PAD_PROBE_INFO_BUFFER (info); + GstRTPBuffer rtpbuffer = GST_RTP_BUFFER_INIT; + guint8 *payload; guint32 header; guchar TDT; + gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtpbuffer); + + payload = gst_rtp_buffer_get_payload (&rtpbuffer); + header = GST_READ_UINT32_BE (payload); /* * 0 1 2 3 @@ -146,10 +152,12 @@ drop_theora_config (GstPad *pad, GstBuffer *buffer, gpointer user_data) */ TDT = (header & 0x30) >> 4; + gst_rtp_buffer_unmap (&rtpbuffer); + if (TDT == 1) - return FALSE; + return GST_PAD_PROBE_DROP; else - return TRUE; + return GST_PAD_PROBE_OK; } GST_START_TEST (test_rtprecv_inband_config_data) @@ -300,7 +308,8 @@ GST_START_TEST (test_rtprecv_inband_config_data) ts_fail_unless (pay != NULL); pad = gst_element_get_static_pad (pay, "src"); ts_fail_unless (pad != NULL); - gst_pad_add_buffer_probe (pad, G_CALLBACK (drop_theora_config), NULL); + gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_BUFFER, + drop_theora_config, NULL, NULL); g_signal_connect (pad, "notify::caps", G_CALLBACK (caps_changed), stream); caps_changed (pad, NULL, stream); gst_object_unref (pad); diff --git a/tests/check/rtp/sendcodecs.c b/tests/check/rtp/sendcodecs.c index 7771539a..889bd498 100644 --- a/tests/check/rtp/sendcodecs.c +++ b/tests/check/rtp/sendcodecs.c @@ -70,9 +70,7 @@ _bus_callback (GstBus *bus, GstMessage *message, gpointer user_data) { const GstStructure *s = gst_message_get_structure (message); - if (gst_implements_interface_check (GST_MESSAGE_SRC (message), - FS_TYPE_CONFERENCE) && - gst_structure_has_name (s, "farstream-error")) + if (gst_structure_has_name (s, "farstream-error")) { const GValue *value; FsError errorno; @@ -81,9 +79,8 @@ _bus_callback (GstBus *bus, GstMessage *message, gpointer user_data) GEnumValue *enumvalue = NULL; ts_fail_unless ( - gst_implements_interface_check (GST_MESSAGE_SRC (message), - FS_TYPE_CONFERENCE), - "Received farstream-error from non-farstream element"); + FS_IS_CONFERENCE (GST_MESSAGE_SRC (message)), + "Received farstream-error from non-farstream element"); ts_fail_unless ( gst_structure_has_field_typed (s, "src-object", G_TYPE_OBJECT), @@ -176,7 +173,8 @@ _bus_callback (GstBus *bus, GstMessage *message, gpointer user_data) } static GstElement * -build_recv_pipeline (GCallback havedata_handler, gpointer data, gint *port) +build_recv_pipeline (GstPadProbeCallback buffer_handler, gpointer data, + gint *port) { GstElement *pipeline; GstElement *src; @@ -200,7 +198,8 @@ build_recv_pipeline (GCallback havedata_handler, gpointer data, gint *port) pad = gst_element_get_static_pad (sink, "sink"); - gst_pad_add_buffer_probe (pad, havedata_handler, data); + gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_BUFFER, buffer_handler, data, + NULL); gst_object_ref (pad); @@ -332,23 +331,25 @@ one_way (GstElement *recv_pipeline, gint port) } -static void -send_dmtf_havedata_handler (GstPad *pad, GstBuffer *buf, gpointer user_data) +static GstPadProbeReturn +send_dmtf_buffer_handler (GstPad *pad, GstPadProbeInfo *info, + gpointer user_data) { + GstRTPBuffer rtpbuf = GST_RTP_BUFFER_INIT; + GstBuffer *buf = GST_PAD_PROBE_INFO_BUFFER (info); gchar *data; ts_fail_unless (gst_rtp_buffer_validate (buf), "Buffer is not valid rtp"); - if (gst_rtp_buffer_get_payload_type (buf) != dtmf_id) - return; + gst_rtp_buffer_map (buf, GST_MAP_READ, &rtpbuf); + if (gst_rtp_buffer_get_payload_type (&rtpbuf) != dtmf_id) + goto out; - data = gst_rtp_buffer_get_payload (buf); + data = gst_rtp_buffer_get_payload (&rtpbuf); + /* Check if still on previous digit */ if (data[0] < digit) - { - /* Still on previous digit */ - return; - } + goto out; GST_LOG ("Got digit %d", data[0]); @@ -356,6 +357,10 @@ send_dmtf_havedata_handler (GstPad *pad, GstBuffer *buf, gpointer user_data) " (sending %d, should be %d", data[0], digit); received = TRUE; + +out: + gst_rtp_buffer_unmap (&rtpbuf); + return GST_PAD_PROBE_OK; } @@ -423,7 +428,7 @@ GST_START_TEST (test_senddtmf_event) { gint port; GstElement *recv_pipeline = build_recv_pipeline ( - G_CALLBACK (send_dmtf_havedata_handler), NULL, &port); + send_dmtf_buffer_handler, NULL, &port); g_timeout_add (350, start_stop_sending_dtmf, NULL); one_way (recv_pipeline, port); @@ -501,7 +506,7 @@ GST_START_TEST (test_senddtmf_change_auto) { gint port; GstElement *recv_pipeline = build_recv_pipeline ( - G_CALLBACK (send_dmtf_havedata_handler), NULL, &port); + send_dmtf_buffer_handler, NULL, &port); change_codec = TRUE; g_timeout_add (350, start_stop_sending_dtmf, NULL); @@ -511,15 +516,20 @@ GST_END_TEST; gboolean checked = FALSE; -static void -change_ssrc_handler (GstPad *pad, GstBuffer *buf, gpointer user_data) +static GstPadProbeReturn +change_ssrc_buffer_handler (GstPad *pad, GstPadProbeInfo *info, + gpointer user_data) { + GstBuffer *buf = GST_PAD_PROBE_INFO_BUFFER (info); guint sess_ssrc; guint buf_ssrc; + GstRTPBuffer rtpbuf = GST_RTP_BUFFER_INIT; ts_fail_unless (gst_rtp_buffer_validate (buf)); - buf_ssrc = gst_rtp_buffer_get_ssrc (buf); + gst_rtp_buffer_map (buf, GST_MAP_READ, &rtpbuf); + buf_ssrc = gst_rtp_buffer_get_ssrc (&rtpbuf); + gst_rtp_buffer_unmap (&rtpbuf); g_object_get (dat->session, "ssrc", &sess_ssrc, NULL); @@ -546,13 +556,15 @@ change_ssrc_handler (GstPad *pad, GstBuffer *buf, gpointer user_data) if (sess_ssrc != 12345) g_object_set (dat->session, "ssrc", 12345, NULL); } + + return GST_PAD_PROBE_OK; } GST_START_TEST (test_change_ssrc) { gint port; GstElement *recv_pipeline = build_recv_pipeline ( - G_CALLBACK (change_ssrc_handler), NULL, &port); + change_ssrc_buffer_handler, NULL, &port); checked = FALSE; one_way (recv_pipeline, port); diff --git a/tests/check/transmitter/fake-filter.c b/tests/check/transmitter/fake-filter.c index 73e5d125..b4204bd6 100644 --- a/tests/check/transmitter/fake-filter.c +++ b/tests/check/transmitter/fake-filter.c @@ -1,7 +1,7 @@ /* * Farstream Voice+Video library * - * Copyright 2008 Collabora Ltd, + * Copyright 2008-2012 Collabora Ltd, * Copyright 2008 Nokia Corporation * @author: Olivier Crete <olivier.crete@collabora.co.uk> * @@ -32,14 +32,6 @@ GST_DEBUG_CATEGORY (fake_filter_debug); #define GST_CAT_DEFAULT (fake_filter_debug) -/* elementfactory information */ -static const GstElementDetails fs_fake_filter_details = -GST_ELEMENT_DETAILS ( - "Fake Filter element", - "Filter", - "This element ignores the sending property", - "Olivier Crete <olivier.crete@collabora.co.uk>"); - static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, @@ -51,19 +43,6 @@ static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_ALWAYS, GST_STATIC_CAPS_ANY); -/* signals and args */ -enum -{ - /* FILL ME */ - LAST_SIGNAL -}; - -enum -{ - PROP_0, - PROP_SENDING -}; - static void fs_fake_filter_get_property (GObject *object, guint prop_id, GValue *value, @@ -73,38 +52,41 @@ static void fs_fake_filter_set_property (GObject *object, const GValue *value, GParamSpec *pspec); -static void -_do_init (GType type) -{ - GST_DEBUG_CATEGORY_INIT - (fake_filter_debug, "fsfakefilter", 0, "fsfakefilter"); -} - -GST_BOILERPLATE_FULL (FsFakeFilter, fs_fake_filter, GstBaseTransform, - GST_TYPE_BASE_TRANSFORM, _do_init); +/* signals and args */ -static void -fs_fake_filter_base_init (gpointer klass) +enum { - GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + PROP_0, + PROP_SENDING +}; - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&srctemplate)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sinktemplate)); +G_DEFINE_TYPE (FsFakeFilter, fs_fake_filter, GST_TYPE_BASE_TRANSFORM); - gst_element_class_set_details (element_class, &fs_fake_filter_details); -} static void fs_fake_filter_class_init (FsFakeFilterClass *klass) { GObjectClass *gobject_class; + GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); gobject_class = (GObjectClass *) klass; - gobject_class->set_property = GST_DEBUG_FUNCPTR (fs_fake_filter_set_property); - gobject_class->get_property = GST_DEBUG_FUNCPTR (fs_fake_filter_get_property); + GST_DEBUG_CATEGORY_INIT + (fake_filter_debug, "fsfakefilter", 0, "fsfakefilter"); + + gobject_class->set_property = fs_fake_filter_set_property; + gobject_class->get_property = fs_fake_filter_get_property; + + gst_element_class_add_pad_template (gstelement_class, + gst_static_pad_template_get (&srctemplate)); + gst_element_class_add_pad_template (gstelement_class, + gst_static_pad_template_get (&sinktemplate)); + + gst_element_class_set_metadata (gstelement_class, + "Fake Filter element", + "Filter", + "This element ignores the sending property", + "Olivier Crete <olivier.crete@collabora.com>"); g_object_class_install_property (gobject_class, PROP_SENDING, @@ -116,8 +98,7 @@ fs_fake_filter_class_init (FsFakeFilterClass *klass) } static void -fs_fake_filter_init (FsFakeFilter *fakefilter, - FsFakeFilterClass *klass) +fs_fake_filter_init (FsFakeFilter *fakefilter) { } diff --git a/tests/check/transmitter/generic.c b/tests/check/transmitter/generic.c index 810faa10..797933d4 100644 --- a/tests/check/transmitter/generic.c +++ b/tests/check/transmitter/generic.c @@ -56,7 +56,7 @@ setup_fakesrc (FsTransmitter *trans, GstElement *pipeline, guint component_id) gchar *padname; gchar *tmp; - tmp = g_strdup_printf ("fakemediasrc_%d", component_id); + tmp = g_strdup_printf ("fakemediasrc_%u", component_id); src = gst_element_factory_make ("fakesrc", tmp); g_free (tmp); g_object_set (src, @@ -78,7 +78,7 @@ setup_fakesrc (FsTransmitter *trans, GstElement *pipeline, guint component_id) g_object_get (trans, "gst-sink", &trans_sink, NULL); - padname = g_strdup_printf ("sink%d", component_id); + padname = g_strdup_printf ("sink_%u", component_id); ts_fail_unless (gst_element_link_pads (src, "src", trans_sink, padname), "Could not link the fakesrc to %s", padname); g_free (padname); @@ -125,10 +125,10 @@ setup_pipeline (FsTransmitter *trans, GCallback cb) gst_bin_add_many (GST_BIN (pipeline), rtpfakesink, rtcpfakesink, trans_sink, trans_src, NULL); - ts_fail_unless (gst_element_link_pads (trans_src, "src1", + ts_fail_unless (gst_element_link_pads (trans_src, "src_1", rtpfakesink, "sink"), "Coult not link transmitter src and fakesink"); - ts_fail_unless (gst_element_link_pads (trans_src, "src2", + ts_fail_unless (gst_element_link_pads (trans_src, "src_2", rtcpfakesink, "sink"), "Coult not link transmitter src and fakesink"); diff --git a/tests/check/transmitter/multicast.c b/tests/check/transmitter/multicast.c index 2ded687b..406bd1ea 100644 --- a/tests/check/transmitter/multicast.c +++ b/tests/check/transmitter/multicast.c @@ -57,15 +57,15 @@ _handoff_handler (GstElement *element, GstBuffer *buffer, GstPad *pad, { gint component_id = GPOINTER_TO_INT (user_data); - ts_fail_unless (GST_BUFFER_SIZE (buffer) == component_id * 10, - "Buffer is size %d but component_id is %d", GST_BUFFER_SIZE (buffer), + ts_fail_unless (gst_buffer_get_size (buffer) == component_id * 10, + "Buffer is size %d but component_id is %d", gst_buffer_get_size (buffer), component_id); buffer_count[component_id-1]++; /* GST_DEBUG ("Buffer %d component: %d size: %u", buffer_count[component_id-1], - component_id, GST_BUFFER_SIZE (buffer)); + component_id, gst_buffer_get_size (buffer)); */ ts_fail_if (buffer_count[component_id-1] > 20, diff --git a/tests/check/transmitter/nice.c b/tests/check/transmitter/nice.c index 62ed4b1f..931ad711 100644 --- a/tests/check/transmitter/nice.c +++ b/tests/check/transmitter/nice.c @@ -196,8 +196,8 @@ static void _handoff_handler (GstElement *element, GstBuffer *buffer, GstPad *pad, guint stream, gint component_id) { - ts_fail_unless (GST_BUFFER_SIZE (buffer) == component_id * 10, - "Buffer is size %d but component_id is %d", GST_BUFFER_SIZE (buffer), + ts_fail_unless (gst_buffer_get_size (buffer) == component_id * 10, + "Buffer is size %d but component_id is %d", gst_buffer_get_size (buffer), component_id); g_static_mutex_lock (&count_mutex); @@ -209,7 +209,7 @@ _handoff_handler (GstElement *element, GstBuffer *buffer, GstPad *pad, { GST_DEBUG ("Buffer %d stream: %u component: %d size: %u", buffer_count[stream][component_id-1], stream, - component_id, GST_BUFFER_SIZE (buffer)); + component_id, gst_buffer_get_size (buffer)); GST_DEBUG ("Received %d %d %d %d", buffer_count[0][0], buffer_count[0][1], buffer_count[1][0], buffer_count[1][1]); diff --git a/tests/check/transmitter/rawudp.c b/tests/check/transmitter/rawudp.c index faae7573..4b9ade94 100644 --- a/tests/check/transmitter/rawudp.c +++ b/tests/check/transmitter/rawudp.c @@ -200,14 +200,14 @@ _handoff_handler (GstElement *element, GstBuffer *buffer, GstPad *pad, { gint component_id = GPOINTER_TO_INT (user_data); - ts_fail_unless (GST_BUFFER_SIZE (buffer) == component_id * 10, - "Buffer is size %d but component_id is %d", GST_BUFFER_SIZE (buffer), + ts_fail_unless (gst_buffer_get_size (buffer) == component_id * 10, + "Buffer is size %d but component_id is %d", gst_buffer_get_size (buffer), component_id); buffer_count[component_id-1]++; GST_LOG ("Buffer %d component: %d size: %u", buffer_count[component_id-1], - component_id, GST_BUFFER_SIZE (buffer)); + component_id, gst_buffer_get_size (buffer)); ts_fail_if (buffer_count[component_id-1] > 20, "Too many buffers %d > 20 for component", diff --git a/tests/check/transmitter/shm.c b/tests/check/transmitter/shm.c index d23ff3d3..3c9257f6 100644 --- a/tests/check/transmitter/shm.c +++ b/tests/check/transmitter/shm.c @@ -131,14 +131,14 @@ _handoff_handler (GstElement *element, GstBuffer *buffer, GstPad *pad, { gint component_id = GPOINTER_TO_INT (user_data); - ts_fail_unless (GST_BUFFER_SIZE (buffer) == component_id * 10, - "Buffer is size %d but component_id is %d", GST_BUFFER_SIZE (buffer), + ts_fail_unless (gst_buffer_get_size (buffer) == component_id * 10, + "Buffer is size %d but component_id is %d", gst_buffer_get_size (buffer), component_id); buffer_count[component_id-1]++; GST_LOG ("Buffer %d component: %d size: %u", buffer_count[component_id-1], - component_id, GST_BUFFER_SIZE (buffer)); + component_id, gst_buffer_get_size (buffer)); ts_fail_if (buffer_count[component_id-1] > 20, "Too many buffers %d > 20 for component", @@ -180,7 +180,8 @@ _known_source_packet_received (FsStreamTransmitter *st, guint component_id, received_known[component_id - 1]++; GST_LOG ("Known source buffer %d component: %d size: %u", - received_known[component_id-1], component_id, GST_BUFFER_SIZE (buffer)); + received_known[component_id-1], component_id, + gst_buffer_get_size (buffer)); } void |