summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier CrĂȘte <olivier.crete@collabora.com>2014-05-05 23:20:11 -0400
committerNicolas Dufresne <nicolas.dufresne@collabora.co.uk>2014-09-18 13:38:00 -0400
commit9c7aa550ed0ea0b6962c7e3c1f42d7af253ea0fa (patch)
tree980c7a99eac9309e249b3de452d102db925302c9
parent220236e6564486571b0e7eae079b9cb6a554b933 (diff)
downloadfarstream-9c7aa550ed0ea0b6962c7e3c1f42d7af253ea0fa.tar.gz
transmitter: Remove recvonly-filter
It was pretty much useless anyway.
-rw-r--r--docs/libs/farstream-libs-sections.txt1
-rw-r--r--docs/plugins/farstream-plugins-sections.txt2
-rw-r--r--farstream/fs-transmitter.c49
-rw-r--r--farstream/fs-transmitter.h4
-rw-r--r--gst/fsrtpconference/fs-rtp-session.c9
-rw-r--r--tests/check/Makefile.am4
-rw-r--r--tests/check/transmitter/fake-filter.c156
-rw-r--r--tests/check/transmitter/fake-filter.h66
-rw-r--r--tests/check/transmitter/multicast.c38
-rw-r--r--tests/check/transmitter/nice.c34
-rw-r--r--tests/check/transmitter/rawudp.c45
-rw-r--r--tests/check/transmitter/shm.c29
-rw-r--r--transmitters/multicast/fs-multicast-stream-transmitter.c57
-rw-r--r--transmitters/multicast/fs-multicast-transmitter.c91
-rw-r--r--transmitters/nice/fs-nice-transmitter.c141
-rw-r--r--transmitters/rawudp/fs-rawudp-component.c16
-rw-r--r--transmitters/rawudp/fs-rawudp-stream-transmitter.c9
-rw-r--r--transmitters/rawudp/fs-rawudp-transmitter.c57
-rw-r--r--transmitters/rawudp/fs-rawudp-transmitter.h8
-rw-r--r--transmitters/shm/fs-shm-stream-transmitter.c22
-rw-r--r--transmitters/shm/fs-shm-transmitter.c13
21 files changed, 81 insertions, 770 deletions
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
<SUBSECTION Standard>
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
<SUBSECTION Standard>
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 <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 "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 <olivier.crete@collabora.com>");
-
- 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 <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
- */
-
-#ifndef __FS_FAKE_FILTER_H__
-#define __FS_FAKE_FILTER_H__
-
-#include <gst/gst.h>
-#include <gst/base/gstbasetransform.h>
-
-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 (&params[0].value, G_TYPE_BOOLEAN);
- g_value_set_boolean (&params[0].value, TRUE);
-
- params[1].name = "upnp-discovery";
- g_value_init (&params[1].value, G_TYPE_BOOLEAN);
- g_value_set_boolean (&params[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 (&params[1].value, G_TYPE_BOOLEAN);
g_value_set_boolean (&params[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,