summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2017-12-19 11:14:48 +0200
committerSebastian Dröge <sebastian@centricular.com>2017-12-19 11:16:51 +0200
commit4d86f99449839f74d0ade7f86451ed70bebdbb60 (patch)
tree46961c3b6995c2288f674439cfd0019f8a84e558
parent64f1a3ab8527a33512682355ddc8adb604d26148 (diff)
rtsp-stream: Decide based on the sockets, not the addresses if we already allocated a socket
In the multicast case (as in test-multicast, not test-multicast2), the address could be allocated/reserved (and thus set) already without allocating the actual socket. We need to allocate the socket here still instead of just claiming that it was already allocated. See https://bugzilla.gnome.org/show_bug.cgi?id=791743#c2
-rw-r--r--gst/rtsp-server/rtsp-stream.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/gst/rtsp-server/rtsp-stream.c b/gst/rtsp-server/rtsp-stream.c
index d8d951b..39628d2 100644
--- a/gst/rtsp-server/rtsp-stream.c
+++ b/gst/rtsp-server/rtsp-stream.c
@@ -1508,18 +1508,19 @@ gst_rtsp_stream_allocate_udp_sockets (GstRTSPStream * stream,
g_mutex_lock (&priv->lock);
if (transport == GST_RTSP_LOWER_TRANS_UDP_MCAST) {
- if (family == G_SOCKET_FAMILY_IPV4 && priv->mcast_addr_v4)
+ if (family == G_SOCKET_FAMILY_IPV4 && priv->mcast_socket_v4[0])
allocated = TRUE;
- else if (family == G_SOCKET_FAMILY_IPV6 && priv->mcast_addr_v6)
+ else if (family == G_SOCKET_FAMILY_IPV6 && priv->mcast_socket_v6[0])
allocated = TRUE;
} else if (transport == GST_RTSP_LOWER_TRANS_UDP) {
- if (family == G_SOCKET_FAMILY_IPV4 && priv->server_addr_v4)
+ if (family == G_SOCKET_FAMILY_IPV4 && priv->socket_v4[0])
allocated = TRUE;
- else if (family == G_SOCKET_FAMILY_IPV6 && priv->server_addr_v6)
+ else if (family == G_SOCKET_FAMILY_IPV6 && priv->socket_v6[0])
allocated = TRUE;
}
if (allocated) {
+ GST_DEBUG_OBJECT (stream, "Allocated already");
g_mutex_unlock (&priv->lock);
return TRUE;
}