diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2017-12-19 11:14:48 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2017-12-19 11:16:51 +0200 |
commit | 4d86f99449839f74d0ade7f86451ed70bebdbb60 (patch) | |
tree | 46961c3b6995c2288f674439cfd0019f8a84e558 | |
parent | 64f1a3ab8527a33512682355ddc8adb604d26148 (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.c | 9 |
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; } |