mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-30 05:31:15 +00:00
rtsp-stream: Always bind to ANY when address is a multicast address and not only on Windows
For IPv6 addresses, binding to a multicast group does not work on Linux either. Always bind to ANY and then later join the multicast group. https://bugzilla.gnome.org/show_bug.cgi?id=764679
This commit is contained in:
parent
99e6d9c6cc
commit
aa9a2443a1
1 changed files with 2 additions and 10 deletions
|
@ -1342,21 +1342,13 @@ again:
|
|||
g_clear_object (&inetaddr);
|
||||
inetaddr = g_inet_address_new_from_string (addr->address);
|
||||
|
||||
/* On Windows it's not possible to bind to a multicast address
|
||||
* but the OS will make sure to filter out all packets that
|
||||
* arrive not for the multicast address the socket joined.
|
||||
*
|
||||
* On Linux and others it is necessary to bind to a multicast
|
||||
* address to let the OS filter out all packets that are received
|
||||
* on the same port but for different addresses than the multicast
|
||||
* address
|
||||
/* If we're supposed to bind to a multicast address, instead bind
|
||||
* to ANY and let udpsrc later join the relevant multicast group
|
||||
*/
|
||||
#ifdef G_OS_WIN32
|
||||
if (g_inet_address_get_is_multicast (inetaddr)) {
|
||||
g_object_unref (inetaddr);
|
||||
inetaddr = g_inet_address_new_any (family);
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
if (tmp_rtp != 0) {
|
||||
tmp_rtp += 2;
|
||||
|
|
Loading…
Reference in a new issue