]> code.delx.au - pulseaudio/commitdiff
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 4d2ad6ea3d80e16288c87d0074ddc57f7d16a1d7..cba7af9a3842ed1bca8708a09812f72c710bd017 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);