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:
Sebastian Dröge 2016-04-11 10:55:23 +03:00
parent 99e6d9c6cc
commit aa9a2443a1

View file

@ -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;