X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fstream_out%2Frtcp.c;h=83420b9e17051b24264be28c9766c7072d737a90;hb=292a24de34ead1c5222ccf5618bd76fc8ff73c3f;hp=5680e9b3f0cc66ab7e4c6aeb4c0049ad09f46c22;hpb=41c80f959e61dd6f945f2ed7d5b170e197bc7b6f;p=vlc diff --git a/modules/stream_out/rtcp.c b/modules/stream_out/rtcp.c index 5680e9b3f0..83420b9e17 100644 --- a/modules/stream_out/rtcp.c +++ b/modules/stream_out/rtcp.c @@ -32,6 +32,7 @@ #include #include +#include #include "rtp.h" #include @@ -82,7 +83,7 @@ rtcp_sender_t *OpenRTCP (vlc_object_t *obj, int rtp_fd, int proto, { /* RTP/RTCP mux: duplicate the socket */ #ifndef WIN32 - fd = dup (rtp_fd); + fd = vlc_dup (rtp_fd); #elif defined(UNDER_CE) #warning Muxed RTP/RTCP unimplemented! fd = -1; @@ -106,15 +107,17 @@ rtcp_sender_t *OpenRTCP (vlc_object_t *obj, int rtp_fd, int proto, dport++; fd = net_OpenDgram (obj, src, sport, dst, dport, AF_UNSPEC, proto); - - /* Copy the multicast IPv4 TTL value (useless for IPv6) */ if (fd != -1) { + /* Copy the multicast IPv4 TTL value (useless for IPv6) */ int ttl; socklen_t len = sizeof (ttl); if (!getsockopt (rtp_fd, SOL_IP, IP_MULTICAST_TTL, &ttl, &len)) setsockopt (fd, SOL_IP, IP_MULTICAST_TTL, &ttl, len); + + /* Ignore all incoming RTCP-RR packets */ + setsockopt (fd, SOL_SOCKET, SO_RCVBUF, &(int){ 0 }, sizeof (int)); } }