summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatricia Muscalu <patricia@axis.com>2015-11-20 14:43:38 +0100
committerSebastian Dröge <sebastian@centricular.com>2016-02-23 17:05:15 +0200
commitb26c16c82414e62f1d83209d695d411a155cf2cd (patch)
tree261f4fb4cb7d933078fc5a66daf97bbebf79c235
parent6b6970ab23dd0496bf770839b7fcddef05385914 (diff)
rtsp-stream: added function for RTP/RTCP socket configuration
Code refactoring: configure RTP and RTCP sockets for UDP sinks in a separate function. https://bugzilla.gnome.org/show_bug.cgi?id=757488
-rw-r--r--gst/rtsp-server/rtsp-stream.c27
1 files changed, 19 insertions, 8 deletions
diff --git a/gst/rtsp-server/rtsp-stream.c b/gst/rtsp-server/rtsp-stream.c
index cfbe4ca..54ae71b 100644
--- a/gst/rtsp-server/rtsp-stream.c
+++ b/gst/rtsp-server/rtsp-stream.c
@@ -1021,12 +1021,11 @@ different_address:
}
/* must be called with lock */
-static gboolean
-create_and_configure_udpsinks (GstRTSPStream * stream, GSocket * rtp_socket,
+static void
+set_sockets_for_udpsinks (GstRTSPStream * stream, GSocket * rtp_socket,
GSocket * rtcp_socket, GSocketFamily family)
{
GstRTSPStreamPrivate *priv = stream->priv;
- GstElement *udpsink0, *udpsink1;
const gchar *multisink_socket;
if (family == G_SOCKET_FAMILY_IPV6)
@@ -1034,6 +1033,19 @@ create_and_configure_udpsinks (GstRTSPStream * stream, GSocket * rtp_socket,
else
multisink_socket = "socket";
+ g_object_set (G_OBJECT (priv->udpsink[0]), multisink_socket, rtp_socket,
+ NULL);
+ g_object_set (G_OBJECT (priv->udpsink[1]), multisink_socket, rtcp_socket,
+ NULL);
+}
+
+/* must be called with lock */
+static gboolean
+create_and_configure_udpsinks (GstRTSPStream * stream)
+{
+ GstRTSPStreamPrivate *priv = stream->priv;
+ GstElement *udpsink0, *udpsink1;
+
udpsink0 = NULL;
udpsink1 = NULL;
@@ -1077,9 +1089,6 @@ create_and_configure_udpsinks (GstRTSPStream * stream, GSocket * rtp_socket,
g_object_set (G_OBJECT (udpsink0), "loop", FALSE, NULL);
g_object_set (G_OBJECT (udpsink1), "loop", FALSE, NULL);
- g_object_set (G_OBJECT (udpsink0), multisink_socket, rtp_socket, NULL);
- g_object_set (G_OBJECT (udpsink1), multisink_socket, rtcp_socket, NULL);
-
/* update the dscp qos field in the sinks */
update_dscp_qos (stream);
@@ -1236,10 +1245,12 @@ again:
if (rtpport != tmp_rtp || rtcpport != tmp_rtcp)
goto port_error;
- if (!create_and_configure_udpsinks (stream, rtp_socket, rtcp_socket,
- family))
+ if (!create_and_configure_udpsinks (stream))
goto no_udp_protocol;
+ /* set RTP and RTCP sockets */
+ set_sockets_for_udpsinks (stream, rtp_socket, rtcp_socket, family);
+
/* we keep these elements, we will further configure them when the
* client told us to really use the UDP ports. */
udpsrc_out[0] = udpsrc0;