raop: Change socket buffer size handling to avoid playback underruns
authorBryan Gleeson <bryangleeson@yahoo.com>
Fri, 10 Jun 2011 20:02:20 +0000 (13:02 -0700)
committerColin Guthrie <colin@mageia.org>
Wed, 22 Jun 2011 22:15:57 +0000 (23:15 +0100)
When a TCP socket is created the size of the send buffer (SO_SNDBUF) used is
determined by the OS, using the net.ipv4.tcp_wmem sysctl parameter. Previously
a call to setsockopt set the buffer size to a value that was too small, and
that in some cases could result in underruns and choppy playback. This
setsockopt call has now been removed so that the value determined by the OS
is used unchanged.

Note that the value used for the send buffer size is the 2nd value in
net.ipv4.tcp_wmem, e.g. if this is set to "4096 65536 8388608" the send buffer
size is set to 65536.

src/modules/raop/raop_client.c

index 4d2ad6e..cba7af9 100644 (file)
@@ -219,7 +219,6 @@ static void on_connection(pa_socket_client *sc, pa_iochannel *io, void *userdata
     c->fd = pa_iochannel_get_send_fd(io);
 
     pa_iochannel_set_noclose(io, TRUE);
-    pa_iochannel_socket_set_sndbuf(io, 1024);
     pa_iochannel_free(io);
 
     pa_make_tcp_socket_low_delay(c->fd);