]> git.sesse.net Git - vlc/commitdiff
RTP out: hint the IP stack we won't be receiving anything on UDP sockets
authorRémi Denis-Courmont <remi@remlab.net>
Mon, 7 Dec 2009 18:45:59 +0000 (20:45 +0200)
committerRémi Denis-Courmont <remi@remlab.net>
Mon, 7 Dec 2009 18:47:13 +0000 (20:47 +0200)
Currently, we never read from RTP and RTCP sockets, so we might as well
set their RX buffer size to zero.

modules/stream_out/rtcp.c
modules/stream_out/rtp.c
modules/stream_out/rtsp.c

index 5680e9b3f0cc66ab7e4c6aeb4c0049ad09f46c22..54e2c83fa571f93add49e4ad1063584cf8c97ed7 100644 (file)
@@ -106,15 +106,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));
         }
     }
 
index f7f80edeb0b104b7ec75edb62e490120620a3d75..edd53fd0dcdb6d0db27cfc1f9c08de15c2d3e950 100644 (file)
@@ -1029,6 +1029,10 @@ static sout_stream_id_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt )
                     msg_Err( p_stream, "cannot create RTP socket" );
                     goto error;
                 }
+                /* Ignore any unexpected incoming packet (including RTCP-RR
+                 * packets in case of rtcp-mux) */
+                setsockopt (fd, SOL_SOCKET, SO_RCVBUF, &(int){ 0 },
+                            sizeof (int));
                 rtp_add_sink( id, fd, p_sys->rtcp_mux );
             }
         }
index 2e29e15089ae92efdf0cdbdee82c80c899b39d9f..1dca3de1bd41004b85ff6e9d22de403d6755649e 100644 (file)
@@ -557,6 +557,9 @@ static int RtspHandler( rtsp_stream_t *rtsp, rtsp_stream_id_t *id,
                         continue;
                     }
 
+                    /* Ignore any unexpected incoming packet */
+                    setsockopt (track.fd, SOL_SOCKET, SO_RCVBUF, &(int){ 0 },
+                                sizeof (int));
                     net_GetSockAddress( track.fd, src, &sport );
 
                     vlc_mutex_lock( &rtsp->lock );