From 9c7aa550ed0ea0b6962c7e3c1f42d7af253ea0fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olivier=20Cr=C3=AAte?= Date: Mon, 5 May 2014 23:20:11 -0400 Subject: transmitter: Remove recvonly-filter It was pretty much useless anyway. --- docs/libs/farstream-libs-sections.txt | 1 - docs/plugins/farstream-plugins-sections.txt | 2 - farstream/fs-transmitter.c | 49 ------- farstream/fs-transmitter.h | 4 - gst/fsrtpconference/fs-rtp-session.c | 9 -- tests/check/Makefile.am | 4 - tests/check/transmitter/fake-filter.c | 156 --------------------- tests/check/transmitter/fake-filter.h | 66 --------- tests/check/transmitter/multicast.c | 38 +---- tests/check/transmitter/nice.c | 34 +---- tests/check/transmitter/rawudp.c | 45 +----- tests/check/transmitter/shm.c | 29 +--- .../multicast/fs-multicast-stream-transmitter.c | 57 ++++---- transmitters/multicast/fs-multicast-transmitter.c | 91 +----------- transmitters/nice/fs-nice-transmitter.c | 141 ++++--------------- transmitters/rawudp/fs-rawudp-component.c | 16 --- transmitters/rawudp/fs-rawudp-stream-transmitter.c | 9 +- transmitters/rawudp/fs-rawudp-transmitter.c | 57 -------- transmitters/rawudp/fs-rawudp-transmitter.h | 8 -- transmitters/shm/fs-shm-stream-transmitter.c | 22 ++- transmitters/shm/fs-shm-transmitter.c | 13 +- 21 files changed, 81 insertions(+), 770 deletions(-) delete mode 100644 tests/check/transmitter/fake-filter.c delete mode 100644 tests/check/transmitter/fake-filter.h diff --git a/docs/libs/farstream-libs-sections.txt b/docs/libs/farstream-libs-sections.txt index 114928a3..e58dac7c 100644 --- a/docs/libs/farstream-libs-sections.txt +++ b/docs/libs/farstream-libs-sections.txt @@ -183,7 +183,6 @@ fs_transmitter_new fs_transmitter_new_stream_transmitter fs_transmitter_get_stream_transmitter_type fs_transmitter_emit_error -fs_transmitter_get_recvonly_filter fs_transmitter_list_available FS_IS_TRANSMITTER diff --git a/docs/plugins/farstream-plugins-sections.txt b/docs/plugins/farstream-plugins-sections.txt index b8590ce9..c4eef75b 100644 --- a/docs/plugins/farstream-plugins-sections.txt +++ b/docs/plugins/farstream-plugins-sections.txt @@ -90,8 +90,6 @@ fs_rawudp_transmitter_udpport_is_pad fs_rawudp_transmitter_udpport_get_port fs_rawudp_transmitter_udpport_add_known_address fs_rawudp_transmitter_udpport_remove_known_address -fs_rawudp_transmitter_udpport_add_recvonly_dest -fs_rawudp_transmitter_udpport_remove_recvonly_dest FS_RAWUDP_TRANSMITTER_CAST FS_RAWUDP_TRANSMITTER diff --git a/farstream/fs-transmitter.c b/farstream/fs-transmitter.c index 9552053d..73cbcd5c 100644 --- a/farstream/fs-transmitter.c +++ b/farstream/fs-transmitter.c @@ -50,7 +50,6 @@ enum { ERROR_SIGNAL, - GET_RECVONLY_FILTER_SIGNAL, LAST_SIGNAL }; @@ -195,29 +194,6 @@ fs_transmitter_class_init (FsTransmitterClass *klass) NULL, NULL, NULL, G_TYPE_NONE, 2, FS_TYPE_ERROR, G_TYPE_STRING); - /** - * FsTransmitter::get-recvonly-filter: - * @self: #FsTransmitter that emitted the signal - * @component: The component that the filter will be used for - * - * This signal is emitted when the transmitter wants to get a filter for - * to use if sending is disabled. If you want to drop all buffers, just - * don't listen to the signal. - * - * This element should have a "sending" property that can be changed with the - * sending state of the stream. It should default to %TRUE. - * - * Returns: (transfer full) (allow-none): the #GstElement to use as the - * filter, or %NULL to drop everything - */ - - signals[GET_RECVONLY_FILTER_SIGNAL] = g_signal_new ("get-recvonly-filter", - G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_LAST, - 0, NULL, NULL, NULL, - GST_TYPE_ELEMENT, 1, G_TYPE_UINT); - - //g_type_class_add_private (klass, sizeof (FsTransmitterPrivate)); } @@ -390,28 +366,3 @@ fs_transmitter_list_available (void) { return fs_plugin_list_available ("transmitter"); } - -/** - * fs_transmitter_get_recvonly_filter: - * @transmitter: A #FsTransmitter object - * @component: The component to get the filter for - * - * Get the filter to add on the send pipeline if sending is disabled. - * - * Only for use by subclasses. - * - * Returns: (transfer full) (allow-none): a #GstElement to use as the filter or - * %NULL - */ - -GstElement * -fs_transmitter_get_recvonly_filter (FsTransmitter *transmitter, - guint component) -{ - GstElement *element = NULL; - - g_signal_emit (transmitter, signals[GET_RECVONLY_FILTER_SIGNAL], 0, component, - &element); - - return element; -} diff --git a/farstream/fs-transmitter.h b/farstream/fs-transmitter.h index 302e531e..51fb3255 100644 --- a/farstream/fs-transmitter.h +++ b/farstream/fs-transmitter.h @@ -117,10 +117,6 @@ void fs_transmitter_emit_error (FsTransmitter *transmitter, char **fs_transmitter_list_available (void); -GstElement * -fs_transmitter_get_recvonly_filter (FsTransmitter *transmitter, - guint component); - G_END_DECLS #endif /* __FS_TRANSMITTER_H__ */ diff --git a/gst/fsrtpconference/fs-rtp-session.c b/gst/fsrtpconference/fs-rtp-session.c index 7acc7645..9e508f42 100644 --- a/gst/fsrtpconference/fs-rtp-session.c +++ b/gst/fsrtpconference/fs-rtp-session.c @@ -2296,13 +2296,6 @@ _transmitter_error ( fs_session_emit_error (session, errorno, error_msg); } -static GstElement * -_get_recvonly_filter (FsTransmitter *transmitter, guint component, - gpointer user_data) -{ - return NULL; -} - static gboolean fs_rtp_session_add_transmitter_gst_sink (FsRtpSession *self, FsTransmitter *transmitter, @@ -2380,8 +2373,6 @@ fs_rtp_session_get_transmitter (FsRtpSession *self, g_signal_connect (transmitter, "error", G_CALLBACK (_transmitter_error), self); - g_signal_connect (transmitter, "get-recvonly-filter", - G_CALLBACK (_get_recvonly_filter), NULL); if (!fs_rtp_session_add_transmitter_gst_sink (self, transmitter, error)) goto error; diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am index c911dbd5..5e6f07a1 100644 --- a/tests/check/Makefile.am +++ b/tests/check/Makefile.am @@ -101,8 +101,6 @@ transmitter_multicast_SOURCES = \ testutils.h \ transmitter/generic.c \ transmitter/generic.h \ - transmitter/fake-filter.c \ - transmitter/fake-filter.h \ transmitter/multicast.c transmitter_multicast_LDADD = $(LDADD) $(GST_BASE_LIBS) @@ -111,8 +109,6 @@ transmitter_nice_SOURCES = \ check-threadsafe.h \ transmitter/generic.c \ transmitter/generic.h \ - transmitter/fake-filter.c \ - transmitter/fake-filter.h \ transmitter/nice.c transmitter_nice_LDADD = $(LDADD) $(GST_BASE_LIBS) diff --git a/tests/check/transmitter/fake-filter.c b/tests/check/transmitter/fake-filter.c deleted file mode 100644 index 491a9455..00000000 --- a/tests/check/transmitter/fake-filter.c +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Farstream Voice+Video library - * - * Copyright 2008-2012 Collabora Ltd, - * Copyright 2008 Nokia Corporation - * @author: Olivier Crete - * - * 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 "fake-filter.h" - -GST_DEBUG_CATEGORY (fake_filter_debug); -#define GST_CAT_DEFAULT (fake_filter_debug) - - -static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", - GST_PAD_SINK, - GST_PAD_ALWAYS, - GST_STATIC_CAPS_ANY); - -static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", - GST_PAD_SRC, - GST_PAD_ALWAYS, - GST_STATIC_CAPS_ANY); - -static void fs_fake_filter_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec); -static void fs_fake_filter_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec); - -/* signals and args */ - -enum -{ - PROP_0, - PROP_SENDING -}; - -G_DEFINE_TYPE (FsFakeFilter, fs_fake_filter, GST_TYPE_BASE_TRANSFORM); - - -static void -fs_fake_filter_class_init (FsFakeFilterClass *klass) -{ - GObjectClass *gobject_class; - GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); - - gobject_class = (GObjectClass *) klass; - - 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 "); - - g_object_class_install_property (gobject_class, - PROP_SENDING, - g_param_spec_boolean ("sending", - "Sending RTP?", - "If set to FALSE, it assumes that all RTP has been dropped", - FALSE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); -} - -static void -fs_fake_filter_init (FsFakeFilter *fakefilter) -{ -} - -static void -fs_fake_filter_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - switch (prop_id) - { - case PROP_SENDING: - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} -static void -fs_fake_filter_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - switch (prop_id) - { - case PROP_SENDING: - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - - -gboolean -fs_fake_filter_plugin_init (GstPlugin *plugin) -{ - return gst_element_register (plugin, "fsfakefilter", - GST_RANK_MARGINAL, FS_TYPE_FAKE_FILTER); -} - -gboolean -fs_fake_filter_register (void) -{ - return gst_plugin_register_static ( - GST_VERSION_MAJOR, - GST_VERSION_MINOR, - "fsfakefilter", - "FakeFilter", - fs_fake_filter_plugin_init, - VERSION, - "LGPL", - "Farstream", - "Farstream", - "Farstream testing suite"); -} diff --git a/tests/check/transmitter/fake-filter.h b/tests/check/transmitter/fake-filter.h deleted file mode 100644 index deaf833d..00000000 --- a/tests/check/transmitter/fake-filter.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Farstream Voice+Video library - * - * Copyright 2008 Collabora Ltd, - * Copyright 2008 Nokia Corporation - * @author: Olivier Crete - * - * 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 - */ - -#ifndef __FS_FAKE_FILTER_H__ -#define __FS_FAKE_FILTER_H__ - -#include -#include - -G_BEGIN_DECLS - -/* #define's don't like whitespacey bits */ -#define FS_TYPE_FAKE_FILTER \ - (fs_fake_filter_get_type()) -#define FS_FAKE_FILTER(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj), \ - FS_TYPE_FAKE_FILTER,FsFakeFilter)) -#define FS_FAKE_FILTER_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass), \ - FS_TYPE_FAKE_FILTER,FsFakeFilterClass)) -#define FS_IS_FAKE_FILTER(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),FS_TYPE_FAKE_FILTER)) -#define FS_IS_FAKE_FILTER_CLASS(obj) \ - (G_TYPE_CHECK_CLASS_TYPE((klass),FS_TYPE_FAKE_FILTER)) - -typedef struct _FsFakeFilter FsFakeFilter; -typedef struct _FsFakeFilterClass FsFakeFilterClass; -typedef struct _FsFakeFilterPrivate FsFakeFilterPrivate; - -struct _FsFakeFilter -{ - GstBaseTransform parent; -}; - -struct _FsFakeFilterClass -{ - GstBaseTransformClass parent_class; -}; - -GType fs_fake_filter_get_type (void); - -gboolean fs_fake_filter_register (void); - - -G_END_DECLS - -#endif /* __FS_FAKE_FILTER_H__ */ diff --git a/tests/check/transmitter/multicast.c b/tests/check/transmitter/multicast.c index 406bd1ea..cfd9895b 100644 --- a/tests/check/transmitter/multicast.c +++ b/tests/check/transmitter/multicast.c @@ -28,7 +28,6 @@ #include "check-threadsafe.h" #include "generic.h" -#include "fake-filter.h" #include "testutils.h" gint buffer_count[2] = {0, 0}; @@ -38,8 +37,7 @@ GstElement *pipeline = NULL; gboolean src_setup[2] = {FALSE, FALSE}; enum { - FLAG_NOT_SENDING = 1<<0, - FLAG_RECVONLY_FILTER = 1<<1 + FLAG_NOT_SENDING = 1 << 0 }; @@ -108,16 +106,6 @@ _start_pipeline (gpointer user_data) return FALSE; } - -static GstElement * -_get_recvonly_filter (FsTransmitter *trans, guint component, gpointer user_data) -{ - if (component == 1) - return NULL; - - return gst_element_factory_make ("fsfakefilter", NULL); -} - static void run_multicast_transmitter_test (gint n_parameters, GParameter *params, gint flags) @@ -133,12 +121,9 @@ run_multicast_transmitter_test (gint n_parameters, GParameter *params, buffer_count[0] = 0; buffer_count[1] = 0; - if (flags & FLAG_NOT_SENDING && flags & FLAG_RECVONLY_FILTER) + if (flags & FLAG_NOT_SENDING) buffer_count[0] = 20; - if (flags & FLAG_RECVONLY_FILTER) - fail_unless (fs_fake_filter_register ()); - loop = g_main_loop_new (NULL, FALSE); trans = fs_transmitter_new ("multicast", 2, 0, &error); @@ -153,11 +138,6 @@ run_multicast_transmitter_test (gint n_parameters, GParameter *params, g_object_get (trans, "tos", &tos, NULL); ts_fail_unless (tos == 2); - if (flags & FLAG_RECVONLY_FILTER) - ts_fail_unless (g_signal_connect (trans, "get-recvonly-filter", - G_CALLBACK (_get_recvonly_filter), NULL)); - - pipeline = setup_pipeline (trans, G_CALLBACK (_handoff_handler)); st = fs_transmitter_new_stream_transmitter (trans, NULL, n_parameters, params, @@ -262,17 +242,9 @@ GST_START_TEST (test_multicasttransmitter_run_local_candidates) } GST_END_TEST; -GST_START_TEST (test_multicasttransmitter_with_filter) -{ - run_multicast_transmitter_test (0, NULL, - FLAG_RECVONLY_FILTER); -} -GST_END_TEST; - GST_START_TEST (test_multicasttransmitter_sending_half) { - run_multicast_transmitter_test (0, NULL, - FLAG_NOT_SENDING | FLAG_RECVONLY_FILTER); + run_multicast_transmitter_test (0, NULL, FLAG_NOT_SENDING); } GST_END_TEST; @@ -306,10 +278,6 @@ multicasttransmitter_suite (void) tcase_add_test (tc_chain, test_multicasttransmitter_run_local_candidates); suite_add_tcase (s, tc_chain); - tc_chain = tcase_create ("multicast_transmitter-with-filter"); - tcase_add_test (tc_chain, test_multicasttransmitter_with_filter); - suite_add_tcase (s, tc_chain); - tc_chain = tcase_create ("multicast_transmitter_sending_half"); tcase_add_test (tc_chain, test_multicasttransmitter_sending_half); suite_add_tcase (s, tc_chain); diff --git a/tests/check/transmitter/nice.c b/tests/check/transmitter/nice.c index a0ec84fd..a085996e 100644 --- a/tests/check/transmitter/nice.c +++ b/tests/check/transmitter/nice.c @@ -30,7 +30,6 @@ #include "check-threadsafe.h" #include "generic.h" -#include "fake-filter.h" enum { @@ -38,7 +37,6 @@ enum { FLAG_IS_LOCAL = 1 << 1, FLAG_FORCE_CANDIDATES = 1 << 2, FLAG_NOT_SENDING = 1 << 3, - FLAG_RECVONLY_FILTER = 1 << 4 }; @@ -372,15 +370,6 @@ fs_nice_test_participant_class_init (FsNiceTestParticipantClass *klass) { } -static GstElement * -_get_recvonly_filter (FsTransmitter *trans, guint component, gpointer user_data) -{ - if (component == 1) - return NULL; - - return gst_element_factory_make ("fsfakefilter", NULL); -} - static void run_nice_transmitter_test (gint n_parameters, GParameter *params, gint flags) @@ -401,9 +390,6 @@ run_nice_transmitter_test (gint n_parameters, GParameter *params, is_address_local = (flags & FLAG_IS_LOCAL); force_candidates = (flags & FLAG_FORCE_CANDIDATES); - if (flags & FLAG_RECVONLY_FILTER) - ts_fail_unless (fs_fake_filter_register ()); - if (flags & FLAG_NOT_SENDING) { buffer_count[0][0] = 20; @@ -421,10 +407,6 @@ run_nice_transmitter_test (gint n_parameters, GParameter *params, } ts_fail_if (trans == NULL, "No transmitter create, yet error is still NULL"); - if (flags & FLAG_RECVONLY_FILTER) - ts_fail_unless (g_signal_connect (trans, "get-recvonly-filter", - G_CALLBACK (_get_recvonly_filter), NULL)); - trans2 = fs_transmitter_new ("nice", 2, 0, &error); if (error) { ts_fail ("Error creating transmitter: (%s:%d) %s", @@ -432,10 +414,6 @@ run_nice_transmitter_test (gint n_parameters, GParameter *params, } ts_fail_if (trans2 == NULL, "No transmitter create, yet error is still NULL"); - if (flags & FLAG_RECVONLY_FILTER) - ts_fail_unless (g_signal_connect (trans2, "get-recvonly-filter", - G_CALLBACK (_get_recvonly_filter), NULL)); - pipeline = setup_pipeline (trans, G_CALLBACK (_handoff_handler1)); pipeline2 = setup_pipeline (trans2, G_CALLBACK (_handoff_handler2)); @@ -855,15 +833,9 @@ GST_START_TEST (test_nicetransmitter_invalid_arguments) } GST_END_TEST; -GST_START_TEST (test_nicetransmitter_with_filter) -{ - run_nice_transmitter_test (0, NULL, FLAG_RECVONLY_FILTER); -} -GST_END_TEST; - GST_START_TEST (test_nicetransmitter_sending_half) { - run_nice_transmitter_test (0, NULL, FLAG_NOT_SENDING | FLAG_RECVONLY_FILTER); + run_nice_transmitter_test (0, NULL, FLAG_NOT_SENDING); } GST_END_TEST; @@ -911,10 +883,6 @@ nicetransmitter_suite (void) tcase_add_test (tc_chain, test_nicetransmitter_invalid_arguments); suite_add_tcase (s, tc_chain); - tc_chain = tcase_create ("nicetransmitter-with-filter"); - tcase_add_test (tc_chain, test_nicetransmitter_with_filter); - suite_add_tcase (s, tc_chain); - tc_chain = tcase_create ("nicetransmitter-sending-half"); tcase_add_test (tc_chain, test_nicetransmitter_sending_half); suite_add_tcase (s, tc_chain); diff --git a/tests/check/transmitter/rawudp.c b/tests/check/transmitter/rawudp.c index c35c8acd..71e38f37 100644 --- a/tests/check/transmitter/rawudp.c +++ b/tests/check/transmitter/rawudp.c @@ -58,8 +58,7 @@ enum { FLAG_HAS_STUN = 1 << 0, FLAG_IS_LOCAL = 1 << 1, FLAG_NO_SOURCE = 1 << 2, - FLAG_NOT_SENDING = 1 << 3, - FLAG_RECVONLY_FILTER = 1 << 4 + FLAG_NOT_SENDING = 1 << 3 }; #define RTP_PORT 9828 @@ -264,15 +263,6 @@ sync_error_handler (GstBus *bus, GstMessage *message, gpointer blob) } -static GstElement * -get_recvonly_filter (FsTransmitter *trans, guint component, gpointer user_data) -{ - if (component == 1) - return NULL; - - return gst_element_factory_make ("identity", NULL); -} - static void run_rawudp_transmitter_test (gint n_parameters, GParameter *params, gint flags) @@ -292,7 +282,7 @@ run_rawudp_transmitter_test (gint n_parameters, GParameter *params, has_stun = flags & FLAG_HAS_STUN; associate_on_source = !(flags & FLAG_NO_SOURCE); - if ((flags & FLAG_NOT_SENDING) && (flags & FLAG_RECVONLY_FILTER)) + if ((flags & FLAG_NOT_SENDING)) { buffer_count[0] = 20; received_known[0] = 20; @@ -312,11 +302,6 @@ run_rawudp_transmitter_test (gint n_parameters, GParameter *params, g_object_get (trans, "tos", &tos, NULL); ts_fail_unless (tos == 2); - if (flags & FLAG_RECVONLY_FILTER) - ts_fail_unless (g_signal_connect (trans, "get-recvonly-filter", - G_CALLBACK (get_recvonly_filter), NULL)); - - pipeline = setup_pipeline (trans, G_CALLBACK (_handoff_handler)); bus = gst_element_get_bus (pipeline); @@ -773,25 +758,6 @@ GST_END_TEST; #endif /* HAVE_GUPNP */ -GST_START_TEST (test_rawudptransmitter_with_filter) -{ - GParameter params[2]; - - memset (params, 0, sizeof (GParameter) * 2); - - params[0].name = "associate-on-source"; - g_value_init (¶ms[0].value, G_TYPE_BOOLEAN); - g_value_set_boolean (¶ms[0].value, TRUE); - - params[1].name = "upnp-discovery"; - g_value_init (¶ms[1].value, G_TYPE_BOOLEAN); - g_value_set_boolean (¶ms[1].value, FALSE); - - run_rawudp_transmitter_test (2, params, - FLAG_RECVONLY_FILTER); -} -GST_END_TEST; - GST_START_TEST (test_rawudptransmitter_sending_half) { GParameter params[2]; @@ -806,8 +772,7 @@ GST_START_TEST (test_rawudptransmitter_sending_half) g_value_init (¶ms[1].value, G_TYPE_BOOLEAN); g_value_set_boolean (¶ms[1].value, FALSE); - run_rawudp_transmitter_test (2, params, - FLAG_NOT_SENDING | FLAG_RECVONLY_FILTER); + run_rawudp_transmitter_test (2, params, FLAG_NOT_SENDING); } GST_END_TEST; @@ -1027,10 +992,6 @@ rawudptransmitter_suite (void) } #endif - tc_chain = tcase_create ("rawudptransmitter-with-filter"); - tcase_add_test (tc_chain, test_rawudptransmitter_with_filter); - suite_add_tcase (s, tc_chain); - tc_chain = tcase_create ("rawudptransmitter-sending-half"); tcase_add_test (tc_chain, test_rawudptransmitter_sending_half); suite_add_tcase (s, tc_chain); diff --git a/tests/check/transmitter/shm.c b/tests/check/transmitter/shm.c index 54c9ad10..e0d60ebe 100644 --- a/tests/check/transmitter/shm.c +++ b/tests/check/transmitter/shm.c @@ -52,7 +52,6 @@ guint connected_count; enum { FLAG_NO_SOURCE = 1 << 2, FLAG_NOT_SENDING = 1 << 3, - FLAG_RECVONLY_FILTER = 1 << 4, FLAG_LOCAL_CANDIDATES = 1 << 5 }; @@ -194,15 +193,6 @@ sync_error_handler (GstBus *bus, GstMessage *message, gpointer blob) } -static GstElement * -get_recvonly_filter (FsTransmitter *trans, guint component, gpointer user_data) -{ - if (component == 1) - return NULL; - - return gst_element_factory_make ("identity", NULL); -} - static void run_shm_transmitter_test (gint flags) { @@ -258,7 +248,7 @@ run_shm_transmitter_test (gint flags) associate_on_source = !(flags & FLAG_NO_SOURCE); - if ((flags & FLAG_NOT_SENDING) && (flags & FLAG_RECVONLY_FILTER)) + if (flags & FLAG_NOT_SENDING) { buffer_count[0] = 20; received_known[0] = 20; @@ -272,11 +262,6 @@ run_shm_transmitter_test (gint flags) ts_fail_if (trans == NULL, "No transmitter create, yet error is still NULL"); g_clear_error (&error); - if (flags & FLAG_RECVONLY_FILTER) - ts_fail_unless (g_signal_connect (trans, "get-recvonly-filter", - G_CALLBACK (get_recvonly_filter), NULL)); - - pipeline = setup_pipeline (trans, G_CALLBACK (_handoff_handler)); bus = gst_element_get_bus (pipeline); @@ -410,15 +395,9 @@ GST_START_TEST (test_shmtransmitter_run_basic) } GST_END_TEST; -GST_START_TEST (test_shmtransmitter_with_filter) -{ - run_shm_transmitter_test (FLAG_RECVONLY_FILTER); -} -GST_END_TEST; - GST_START_TEST (test_shmtransmitter_sending_half) { - run_shm_transmitter_test (FLAG_NOT_SENDING | FLAG_RECVONLY_FILTER); + run_shm_transmitter_test (FLAG_NOT_SENDING); } GST_END_TEST; @@ -448,10 +427,6 @@ shmtransmitter_suite (void) tcase_add_test (tc_chain, test_shmtransmitter_run_basic); suite_add_tcase (s, tc_chain); - tc_chain = tcase_create ("shmtransmitter-with-filter"); - tcase_add_test (tc_chain, test_shmtransmitter_with_filter); - suite_add_tcase (s, tc_chain); - tc_chain = tcase_create ("shmtransmitter-sending-half"); tcase_add_test (tc_chain, test_shmtransmitter_sending_half); suite_add_tcase (s, tc_chain); diff --git a/transmitters/multicast/fs-multicast-stream-transmitter.c b/transmitters/multicast/fs-multicast-stream-transmitter.c index 2f4c73da..eb134b4f 100644 --- a/transmitters/multicast/fs-multicast-stream-transmitter.c +++ b/transmitters/multicast/fs-multicast-stream-transmitter.c @@ -227,7 +227,6 @@ static void fs_multicast_stream_transmitter_dispose (GObject *object) { FsMulticastStreamTransmitter *self = FS_MULTICAST_STREAM_TRANSMITTER (object); - gint c; if (self->priv->disposed) /* If dispose did already run, return. */ @@ -235,17 +234,14 @@ fs_multicast_stream_transmitter_dispose (GObject *object) if (self->priv->udpsocks) { - for (c = 1; c <= self->priv->transmitter->components; c++) + if (self->priv->udpsocks[1]) { - if (self->priv->udpsocks[c]) - { - if (self->priv->sending) - fs_multicast_transmitter_udpsock_dec_sending ( - self->priv->udpsocks[c]); - fs_multicast_transmitter_put_udpsock (self->priv->transmitter, - self->priv->udpsocks[c], self->priv->remote_candidate[c]->ttl); - self->priv->udpsocks[c] = NULL; - } + if (self->priv->sending) + fs_multicast_transmitter_udpsock_dec_sending ( + self->priv->udpsocks[1]); + fs_multicast_transmitter_put_udpsock (self->priv->transmitter, + self->priv->udpsocks[1], self->priv->remote_candidate[1]->ttl); + self->priv->udpsocks[1] = NULL; } } @@ -336,29 +332,27 @@ fs_multicast_stream_transmitter_set_property (GObject *object, { gboolean old_sending = self->priv->sending; gboolean sending = g_value_get_boolean (value); - gint c; FS_MULTICAST_STREAM_TRANSMITTER_LOCK (self); self->priv->sending = sending; if (sending != old_sending) - for (c = 1; c <= self->priv->transmitter->components; c++) - if (self->priv->udpsocks[c]) - { - guint8 ttl = self->priv->remote_candidate[c]->ttl; - fs_multicast_transmitter_udpsock_ref (self->priv->transmitter, - self->priv->udpsocks[c], ttl); - FS_MULTICAST_STREAM_TRANSMITTER_UNLOCK (self); - if (sending) - fs_multicast_transmitter_udpsock_inc_sending ( - self->priv->udpsocks[c]); - else - fs_multicast_transmitter_udpsock_dec_sending ( - self->priv->udpsocks[c]); - fs_multicast_transmitter_put_udpsock (self->priv->transmitter, - self->priv->udpsocks[c], ttl); - FS_MULTICAST_STREAM_TRANSMITTER_LOCK (self); - } + if (self->priv->udpsocks[1]) + { + guint8 ttl = self->priv->remote_candidate[1]->ttl; + fs_multicast_transmitter_udpsock_ref (self->priv->transmitter, + self->priv->udpsocks[1], ttl); + FS_MULTICAST_STREAM_TRANSMITTER_UNLOCK (self); + if (sending) + fs_multicast_transmitter_udpsock_inc_sending ( + self->priv->udpsocks[1]); + else + fs_multicast_transmitter_udpsock_dec_sending ( + self->priv->udpsocks[1]); + fs_multicast_transmitter_put_udpsock (self->priv->transmitter, + self->priv->udpsocks[1], ttl); + FS_MULTICAST_STREAM_TRANSMITTER_LOCK (self); + } FS_MULTICAST_STREAM_TRANSMITTER_UNLOCK (self); } @@ -489,7 +483,7 @@ fs_multicast_stream_transmitter_add_remote_candidate ( candidate->ip, candidate->port, candidate->ttl, - self->priv->sending, + candidate->component_id == 1 ? self->priv->sending : TRUE, error); if (!newudpsock) @@ -497,7 +491,8 @@ fs_multicast_stream_transmitter_add_remote_candidate ( FS_MULTICAST_STREAM_TRANSMITTER_LOCK (self); - if (self->priv->udpsocks[candidate->component_id]) + if (self->priv->udpsocks[candidate->component_id] && + candidate->component_id == 1) { if (self->priv->sending) fs_multicast_transmitter_udpsock_dec_sending ( diff --git a/transmitters/multicast/fs-multicast-transmitter.c b/transmitters/multicast/fs-multicast-transmitter.c index 93beb702..1f9eaf1d 100644 --- a/transmitters/multicast/fs-multicast-transmitter.c +++ b/transmitters/multicast/fs-multicast-transmitter.c @@ -521,7 +521,6 @@ struct _UdpSock { GstPad *udpsrc_requested_pad; GstElement *udpsink; - GstElement *udpsink_recvonly_filter; GstPad *udpsink_requested_pad; gchar *local_ip; @@ -715,7 +714,7 @@ _bind_port ( static GstElement * _create_sinksource (gchar *elementname, GstBin *bin, - GstElement *teefunnel, GstElement *filter, GSocket *socket, + GstElement *teefunnel, GSocket *socket, GstPadDirection direction, GstPad **requested_pad, GError **error) { GstElement *elem; @@ -764,53 +763,6 @@ _create_sinksource (gchar *elementname, GstBin *bin, else elempad = gst_element_get_static_pad (elem, "src"); - if (filter) - { - GstPad *filterpad = NULL; - - if (!gst_bin_add (bin, filter)) - { - g_set_error (error, FS_ERROR, FS_ERROR_CONSTRUCTION, - "Could not add the filter element to the gst %s bin", - (direction == GST_PAD_SINK) ? "sink" : "src"); - goto error; - } - - if (direction == GST_PAD_SINK) - filterpad = gst_element_get_static_pad (filter, "src"); - else - filterpad = gst_element_get_static_pad (filter, "sink"); - - if (direction == GST_PAD_SINK) - ret = gst_pad_link (filterpad, elempad); - else - ret = gst_pad_link (elempad, filterpad); - - gst_object_unref (elempad); - gst_object_unref (filterpad); - elempad = NULL; - - if (GST_PAD_LINK_FAILED(ret)) - { - g_set_error (error, FS_ERROR, FS_ERROR_CONSTRUCTION, - "Could not link the new element %s (%d)", elementname, ret); - goto error; - } - - if (direction == GST_PAD_SINK) - elempad = gst_element_get_static_pad (filter, "sink"); - else - elempad = gst_element_get_static_pad (filter, "src"); - - - if (!gst_element_sync_state_with_parent (filter)) - { - g_set_error (error, FS_ERROR, FS_ERROR_CONSTRUCTION, - "Could not sync the state of the new filte rwith its parent"); - goto error; - } - } - if (direction != GST_PAD_SINK) ret = gst_pad_link (elempad, *requested_pad); @@ -973,17 +925,13 @@ fs_multicast_transmitter_get_udpsock (FsMulticastTransmitter *trans, udpsock->funnel = trans->priv->udpsrc_funnels[component_id]; udpsock->udpsrc = _create_sinksource ("udpsrc", - GST_BIN (trans->priv->gst_src), udpsock->funnel, NULL, udpsock->socket, + GST_BIN (trans->priv->gst_src), udpsock->funnel, udpsock->socket, GST_PAD_SRC, &udpsock->udpsrc_requested_pad, error); if (!udpsock->udpsrc) goto error; - udpsock->udpsink_recvonly_filter = fs_transmitter_get_recvonly_filter ( - FS_TRANSMITTER (trans), udpsock->component_id); - udpsock->udpsink = _create_sinksource ("multiudpsink", GST_BIN (trans->priv->gst_sink), udpsock->tee, - udpsock->udpsink_recvonly_filter, udpsock->socket, GST_PAD_SINK, &udpsock->udpsink_requested_pad, error); if (!udpsock->udpsink) goto error; @@ -1016,13 +964,6 @@ fs_multicast_transmitter_get_udpsock (FsMulticastTransmitter *trans, g_list_prepend (trans->priv->udpsocks[component_id], udpsock); FS_MULTICAST_TRANSMITTER_UNLOCK (trans); - if (udpsock->udpsink_recvonly_filter) - { - g_object_set (udpsock->udpsink_recvonly_filter, "sending", sending, NULL); - g_signal_emit_by_name (udpsock->udpsink, "add", udpsock->multicast_ip, - udpsock->port); - } - if (sending) fs_multicast_transmitter_udpsock_inc_sending (udpsock); @@ -1128,20 +1069,6 @@ fs_multicast_transmitter_put_udpsock (FsMulticastTransmitter *trans, GST_ERROR ("Could not remove udpsink element from transmitter source"); } - if (udpsock->udpsink_recvonly_filter) - { - GstStateChangeReturn ret; - gst_element_set_locked_state (udpsock->udpsink_recvonly_filter, TRUE); - ret = gst_element_set_state (udpsock->udpsink_recvonly_filter, - GST_STATE_NULL); - if (ret != GST_STATE_CHANGE_SUCCESS) - GST_ERROR ("Error changing state of udpsink filter: %s", - gst_element_state_change_return_get_name (ret)); - if (!gst_bin_remove (GST_BIN (trans->priv->gst_sink), - udpsock->udpsink_recvonly_filter)) - GST_ERROR ("Could not remove sink filter element from transmitter sink"); - } - if (udpsock->socket) g_object_unref (udpsock->socket); @@ -1159,11 +1086,8 @@ fs_multicast_transmitter_udpsock_inc_sending (UdpSock *udpsock) { if (g_atomic_int_add (&udpsock->sendcount, 1) == 0) { - if (udpsock->udpsink_recvonly_filter) - g_object_set (udpsock->udpsink_recvonly_filter, "sending", TRUE, NULL); - else - g_signal_emit_by_name (udpsock->udpsink, "add", udpsock->multicast_ip, - udpsock->port); + g_signal_emit_by_name (udpsock->udpsink, "add", udpsock->multicast_ip, + udpsock->port); gst_element_send_event (udpsock->udpsink, gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, @@ -1178,11 +1102,8 @@ fs_multicast_transmitter_udpsock_dec_sending (UdpSock *udpsock) { if (g_atomic_int_dec_and_test (&udpsock->sendcount)) { - if (udpsock->udpsink_recvonly_filter) - g_object_set (udpsock->udpsink_recvonly_filter, "sending", FALSE, NULL); - else - g_signal_emit_by_name (udpsock->udpsink, "remove", udpsock->multicast_ip, - udpsock->port); + g_signal_emit_by_name (udpsock->udpsink, "remove", udpsock->multicast_ip, + udpsock->port); } } diff --git a/transmitters/nice/fs-nice-transmitter.c b/transmitters/nice/fs-nice-transmitter.c index 7674c868..0de6b4ea 100644 --- a/transmitters/nice/fs-nice-transmitter.c +++ b/transmitters/nice/fs-nice-transmitter.c @@ -487,7 +487,6 @@ _create_sinksource ( gchar *elementname, GstBin *bin, GstElement *teefunnel, - GstElement *filter, NiceAgent *agent, guint stream_id, guint component_id, @@ -561,53 +560,6 @@ _create_sinksource ( else elempad = gst_element_get_static_pad (elem, "src"); - - if (filter) - { - GstPad *filterpad = NULL; - - if (!gst_bin_add (bin, filter)) - { - g_set_error (error, FS_ERROR, FS_ERROR_CONSTRUCTION, - "Could not add the filter element to the gst %s bin", - (direction == GST_PAD_SINK) ? "sink" : "src"); - goto error; - } - - if (direction == GST_PAD_SINK) - filterpad = gst_element_get_static_pad (filter, "src"); - else - filterpad = gst_element_get_static_pad (filter, "sink"); - - if (direction == GST_PAD_SINK) - ret = gst_pad_link (filterpad, elempad); - else - ret = gst_pad_link (elempad, filterpad); - - gst_object_unref (elempad); - gst_object_unref (filterpad); - elempad = NULL; - - if (GST_PAD_LINK_FAILED(ret)) - { - g_set_error (error, FS_ERROR, FS_ERROR_CONSTRUCTION, - "Could not link the new element %s (%d)", elementname, ret); - goto error; - } - - if (direction == GST_PAD_SINK) - elempad = gst_element_get_static_pad (filter, "sink"); - else - elempad = gst_element_get_static_pad (filter, "src"); - - if (!gst_element_sync_state_with_parent (filter)) - { - g_set_error (error, FS_ERROR, FS_ERROR_CONSTRUCTION, - "Could not sync the state of the new filte rwith its parent"); - goto error; - } - } - if (direction != GST_PAD_SINK) ret = gst_pad_link (elempad, *requested_pad); @@ -689,7 +641,6 @@ _create_sinksource ( struct _NiceGstStream { GstElement **nicesrcs; GstElement **nicesinks; - GstElement **recvonly_filters; GstPad **requested_funnel_pads; GstPad **requested_tee_pads; @@ -721,7 +672,6 @@ fs_nice_transmitter_add_gst_stream (FsNiceTransmitter *self, g_mutex_init (&ns->mutex); ns->nicesrcs = g_new0 (GstElement *, self->components + 1); ns->nicesinks = g_new0 (GstElement *, self->components + 1); - ns->recvonly_filters = g_new0 (GstElement *, self->components + 1); ns->requested_tee_pads = g_new0 (GstPad *, self->components + 1); ns->requested_funnel_pads = g_new0 (GstPad *, self->components + 1); ns->probe_ids = g_new0 (gulong, self->components + 1); @@ -731,7 +681,6 @@ fs_nice_transmitter_add_gst_stream (FsNiceTransmitter *self, ns->nicesrcs[c] = _create_sinksource ("nicesrc", GST_BIN (self->priv->gst_src), self->priv->src_funnels[c], - NULL, agent, stream_id, c, @@ -746,16 +695,9 @@ fs_nice_transmitter_add_gst_stream (FsNiceTransmitter *self, if (ns->nicesrcs[c] == NULL) goto error; - ns->recvonly_filters[c] = fs_transmitter_get_recvonly_filter ( - FS_TRANSMITTER (self), c); - - if (ns->recvonly_filters[c]) - g_object_set (ns->recvonly_filters[c], "sending", TRUE, NULL); - ns->nicesinks[c] = _create_sinksource ("nicesink", GST_BIN (self->priv->gst_sink), self->priv->sink_tees[c], - ns->recvonly_filters[c], agent, stream_id, c, @@ -833,26 +775,10 @@ fs_nice_transmitter_free_gst_stream (FsNiceTransmitter *self, remove_sink (self, ns, c); gst_object_unref (ns->nicesinks[c]); } - - if (ns->recvonly_filters[c]) - { - GstStateChangeReturn ret; - - gst_element_set_locked_state (ns->recvonly_filters[c], TRUE); - ret = gst_element_set_state (ns->recvonly_filters[c], GST_STATE_NULL); - if (ret != GST_STATE_CHANGE_SUCCESS) - GST_ERROR ("Error changing state of nicesink: %s", - gst_element_state_change_return_get_name (ret)); - if (!gst_bin_remove (GST_BIN (self->priv->gst_sink), - ns->recvonly_filters[c])) - GST_ERROR ("Could not remove the recvonly filter element from" - " the transmitter sink"); - } } g_free (ns->nicesrcs); g_free (ns->nicesinks); - g_free (ns->recvonly_filters); g_free (ns->requested_tee_pads); g_free (ns->requested_funnel_pads); g_free (ns->probe_ids); @@ -864,8 +790,6 @@ void fs_nice_transmitter_set_sending (FsNiceTransmitter *self, NiceGstStream *ns, gboolean sending) { - guint c; - g_mutex_lock (&ns->mutex); ns->desired_sending = sending; @@ -890,54 +814,39 @@ fs_nice_transmitter_set_sending (FsNiceTransmitter *self, if (current_sending) { - for (c = 1; c <= self->components; c++) - { - if (ns->recvonly_filters[c]) - g_object_set (ns->recvonly_filters[c], "sending", FALSE, NULL); - else - remove_sink (self, ns, c); - } + remove_sink (self, ns, 1); } else { - for (c = 1; c <= self->components; c++) - { - if (ns->recvonly_filters[c]) - g_object_set (ns->recvonly_filters[c], "sending", TRUE, NULL); - else - { - GstPadLinkReturn ret; - GstPad *elempad; - - gst_element_set_locked_state (ns->nicesinks[c], FALSE); - if (!gst_bin_add (GST_BIN (self->priv->gst_sink), ns->nicesinks[c])) - GST_ERROR ("Could not add nicesink element to the transmitter" - " sink"); - - if (!gst_element_sync_state_with_parent (ns->nicesinks[c])) - GST_ERROR ("Could sync the state of the nicesink with its parent"); - - - ns->requested_tee_pads[c] = - gst_element_get_request_pad (self->priv->sink_tees[c], "src_%u"); - - g_assert (ns->requested_tee_pads[c]); - - elempad = gst_element_get_static_pad (ns->nicesinks[c], "sink"); - ret = gst_pad_link (ns->requested_tee_pads[c], elempad); - if (GST_PAD_LINK_FAILED(ret)) - GST_ERROR ("Could not link nicesink to its tee pad"); - gst_object_unref (elempad); - - fs_nice_transmitter_request_keyunit (self, ns, c); - } - } + GstPadLinkReturn ret; + GstPad *elempad; + + gst_element_set_locked_state (ns->nicesinks[1], FALSE); + if (!gst_bin_add (GST_BIN (self->priv->gst_sink), ns->nicesinks[1])) + GST_ERROR ("Could not add nicesink element to the transmitter" + " sink"); + + if (!gst_element_sync_state_with_parent (ns->nicesinks[1])) + GST_ERROR ("Could sync the state of the nicesink with its parent"); + + + ns->requested_tee_pads[1] = + gst_element_get_request_pad (self->priv->sink_tees[1], "src_%u"); + + g_assert (ns->requested_tee_pads[1]); + + elempad = gst_element_get_static_pad (ns->nicesinks[1], "sink"); + ret = gst_pad_link (ns->requested_tee_pads[1], elempad); + if (GST_PAD_LINK_FAILED(ret)) + GST_ERROR ("Could not link nicesink to its tee pad"); + gst_object_unref (elempad); + + fs_nice_transmitter_request_keyunit (self, ns, 1); } g_mutex_lock (&ns->mutex); ns->sending = sending; - } ns->modifying = FALSE; diff --git a/transmitters/rawudp/fs-rawudp-component.c b/transmitters/rawudp/fs-rawudp-component.c index 156450c8..f9043df8 100644 --- a/transmitters/rawudp/fs-rawudp-component.c +++ b/transmitters/rawudp/fs-rawudp-component.c @@ -643,11 +643,6 @@ fs_rawudp_component_stop (FsRawUdpComponent *self) fs_rawudp_transmitter_udpport_remove_dest (udpport, self->priv->remote_candidate->ip, self->priv->remote_candidate->port); - else - fs_rawudp_transmitter_udpport_remove_recvonly_dest (udpport, - self->priv->remote_candidate->ip, - self->priv->remote_candidate->port); - fs_rawudp_transmitter_udpport_remove_known_address (udpport, self->priv->remote_address, remote_is_unique_cb, self); @@ -761,8 +756,6 @@ fs_rawudp_component_set_property (GObject *object, { if (sending) { - fs_rawudp_transmitter_udpport_remove_recvonly_dest ( - self->priv->udpport, candidate->ip, candidate->port); fs_rawudp_transmitter_udpport_add_dest (self->priv->udpport, candidate->ip, candidate->port); } @@ -770,8 +763,6 @@ fs_rawudp_component_set_property (GObject *object, { fs_rawudp_transmitter_udpport_remove_dest (self->priv->udpport, candidate->ip, candidate->port); - fs_rawudp_transmitter_udpport_add_recvonly_dest ( - self->priv->udpport, candidate->ip, candidate->port); } } if (candidate) @@ -972,9 +963,6 @@ fs_rawudp_component_set_remote_candidate (FsRawUdpComponent *self, if (sending) fs_rawudp_transmitter_udpport_add_dest (self->priv->udpport, candidate->ip, candidate->port); - else - fs_rawudp_transmitter_udpport_add_recvonly_dest (self->priv->udpport, - candidate->ip, candidate->port); if (old_candidate) { @@ -982,10 +970,6 @@ fs_rawudp_component_set_remote_candidate (FsRawUdpComponent *self, fs_rawudp_transmitter_udpport_remove_dest (self->priv->udpport, old_candidate->ip, old_candidate->port); - else - fs_rawudp_transmitter_udpport_remove_recvonly_dest (self->priv->udpport, - candidate->ip, - candidate->port); fs_candidate_destroy (old_candidate); } diff --git a/transmitters/rawudp/fs-rawudp-stream-transmitter.c b/transmitters/rawudp/fs-rawudp-stream-transmitter.c index 94e2ba07..67e6ba49 100644 --- a/transmitters/rawudp/fs-rawudp-stream-transmitter.c +++ b/transmitters/rawudp/fs-rawudp-stream-transmitter.c @@ -480,14 +480,11 @@ fs_rawudp_stream_transmitter_set_property (GObject *object, { case PROP_SENDING: { - gint c; - self->priv->sending = g_value_get_boolean (value); - for (c = 1; c <= self->priv->transmitter->components; c++) - if (self->priv->component[c]) - g_object_set_property (G_OBJECT (self->priv->component[c]), - "sending", value); + if (self->priv->component[1]) + g_object_set_property (G_OBJECT (self->priv->component[1]), + "sending", value); } break; case PROP_PREFERRED_LOCAL_CANDIDATES: diff --git a/transmitters/rawudp/fs-rawudp-transmitter.c b/transmitters/rawudp/fs-rawudp-transmitter.c index e4028028..4372f150 100644 --- a/transmitters/rawudp/fs-rawudp-transmitter.c +++ b/transmitters/rawudp/fs-rawudp-transmitter.c @@ -531,10 +531,6 @@ struct _UdpPort { GstElement *udpsink; GstPad *udpsink_requested_pad; - GstElement *recvonly_filter; - GstElement *recvonly_udpsink; - GstPad *recvonly_requested_pad; - gchar *requested_ip; guint requested_port; @@ -893,19 +889,6 @@ fs_rawudp_transmitter_get_udpport (FsRawUdpTransmitter *trans, if (!udpport->udpsink) goto error; - udpport->recvonly_filter = fs_transmitter_get_recvonly_filter ( - FS_TRANSMITTER (trans), udpport->component_id); - - if (udpport->recvonly_filter) - { - udpport->recvonly_udpsink = _create_sinksource ("multiudpsink", - GST_BIN (trans->priv->gst_sink), udpport->tee, - udpport->recvonly_filter, udpport->socket, GST_PAD_SINK, FALSE, - &udpport->recvonly_requested_pad, error); - if (!udpport->recvonly_udpsink) - goto error; - } - g_mutex_lock (&trans->priv->mutex); /* Check if someone else added the same port at the same time */ @@ -988,27 +971,6 @@ fs_rawudp_transmitter_put_udpport (FsRawUdpTransmitter *trans, GST_ERROR ("Could not remove udpsink element from transmitter source"); } - if (udpport->recvonly_requested_pad) - { - gst_element_release_request_pad (udpport->tee, - udpport->recvonly_requested_pad); - gst_object_unref (udpport->recvonly_requested_pad); - } - - if (udpport->recvonly_udpsink) - { - GstStateChangeReturn ret; - gst_element_set_locked_state (udpport->recvonly_udpsink, TRUE); - ret = gst_element_set_state (udpport->recvonly_udpsink, GST_STATE_NULL); - if (ret != GST_STATE_CHANGE_SUCCESS) - GST_ERROR ("Error changing state of udpsink: %s", - gst_element_state_change_return_get_name (ret)); - if (!gst_bin_remove (GST_BIN (trans->priv->gst_sink), - udpport->recvonly_udpsink)) - GST_ERROR ("Could not remove udpsink element from transmitter source"); - } - - if (udpport->socket) g_socket_close (udpport->socket, NULL); g_clear_object (&udpport->socket); @@ -1258,25 +1220,6 @@ fs_rawudp_transmitter_udpport_remove_known_address (UdpPort *udpport, g_mutex_unlock (&udpport->mutex); } -void -fs_rawudp_transmitter_udpport_add_recvonly_dest (UdpPort *udpport, - const gchar *ip, - gint port) -{ - if (udpport->recvonly_udpsink) - g_signal_emit_by_name (udpport->recvonly_udpsink, "add", ip, port); -} - - -void -fs_rawudp_transmitter_udpport_remove_recvonly_dest (UdpPort *udpport, - const gchar *ip, - gint port) -{ - if (udpport->recvonly_udpsink) - g_signal_emit_by_name (udpport->recvonly_udpsink, "remove", ip, port); -} - static void fs_rawudp_transmitter_set_type_of_service (FsRawUdpTransmitter *self, gint tos) diff --git a/transmitters/rawudp/fs-rawudp-transmitter.h b/transmitters/rawudp/fs-rawudp-transmitter.h index e8ebf173..02a71f95 100644 --- a/transmitters/rawudp/fs-rawudp-transmitter.h +++ b/transmitters/rawudp/fs-rawudp-transmitter.h @@ -145,14 +145,6 @@ void fs_rawudp_transmitter_udpport_remove_known_address (UdpPort *udpport, FsRawUdpAddressUniqueCallbackFunc callback, gpointer user_data); -void fs_rawudp_transmitter_udpport_add_recvonly_dest (UdpPort *udpport, - const gchar *ip, - gint port); - -void fs_rawudp_transmitter_udpport_remove_recvonly_dest (UdpPort *udpport, - const gchar *ip, - gint port); - gboolean fs_g_inet_socket_address_equal (GSocketAddress *addr1, GSocketAddress *addr2); diff --git a/transmitters/shm/fs-shm-stream-transmitter.c b/transmitters/shm/fs-shm-stream-transmitter.c index 5e8884f4..796e898b 100644 --- a/transmitters/shm/fs-shm-stream-transmitter.c +++ b/transmitters/shm/fs-shm-stream-transmitter.c @@ -324,20 +324,14 @@ fs_shm_stream_transmitter_set_property (GObject *object, GParamSpec *pspec) { FsShmStreamTransmitter *self = FS_SHM_STREAM_TRANSMITTER (object); - gint c; switch (prop_id) { case PROP_SENDING: FS_SHM_STREAM_TRANSMITTER_LOCK (self); self->priv->sending = g_value_get_boolean (value); - for (c = 1; c <= self->priv->transmitter->components; c++) - { - if (self->priv->shm_sink[c]) - { - fs_shm_transmitter_sink_set_sending (self->priv->transmitter, - self->priv->shm_sink[c], self->priv->sending); - } - } + if (self->priv->shm_sink[1]) + fs_shm_transmitter_sink_set_sending (self->priv->transmitter, + self->priv->shm_sink[1], self->priv->sending); FS_SHM_STREAM_TRANSMITTER_UNLOCK (self); break; case PROP_PREFERRED_LOCAL_CANDIDATES: @@ -422,8 +416,9 @@ fs_shm_stream_transmitter_add_sink (FsShmStreamTransmitter *self, if (self->priv->shm_sink[candidate->component_id] == NULL) return FALSE; - fs_shm_transmitter_sink_set_sending (self->priv->transmitter, - self->priv->shm_sink[candidate->component_id], self->priv->sending); + if (candidate->component_id == 1) + fs_shm_transmitter_sink_set_sending (self->priv->transmitter, + self->priv->shm_sink[candidate->component_id], self->priv->sending); return TRUE; } @@ -579,8 +574,9 @@ fs_shm_stream_transmitter_gather_local_candidates ( if (self->priv->shm_sink[c] == NULL) return FALSE; - fs_shm_transmitter_sink_set_sending (self->priv->transmitter, - self->priv->shm_sink[c], self->priv->sending); + if (c == 1) + fs_shm_transmitter_sink_set_sending (self->priv->transmitter, + self->priv->shm_sink[c], self->priv->sending); } return TRUE; diff --git a/transmitters/shm/fs-shm-transmitter.c b/transmitters/shm/fs-shm-transmitter.c index 49cfdd9f..917eccff 100644 --- a/transmitters/shm/fs-shm-transmitter.c +++ b/transmitters/shm/fs-shm-transmitter.c @@ -809,17 +809,12 @@ fs_shm_transmitter_get_shm_sink (FsShmTransmitter *self, /* Second add the recvonly filter */ - elem = fs_transmitter_get_recvonly_filter (FS_TRANSMITTER (self), component); - + elem = gst_element_factory_make ("valve", NULL); if (!elem) { - elem = gst_element_factory_make ("valve", NULL); - if (!elem) - { - g_set_error (error, FS_ERROR, FS_ERROR_CONSTRUCTION, + g_set_error (error, FS_ERROR, FS_ERROR_CONSTRUCTION, "Could not make valve"); - goto error; - } + goto error; } if (!gst_bin_add (GST_BIN (self->priv->gst_sink), elem)) @@ -934,8 +929,6 @@ fs_shm_transmitter_sink_set_sending (FsShmTransmitter *self, ShmSink *shm, if (g_object_class_find_property (klass, "drop")) g_object_set (shm->recvonly_filter, "drop", !sending, NULL); - else if (g_object_class_find_property (klass, "sending")) - g_object_set (shm->recvonly_filter, "sending", sending, NULL); if (sending) gst_element_send_event (shm->sink, -- cgit v1.2.1