diff options
author | Olivier CrĂȘte <olivier.crete@collabora.co.uk> | 2009-07-14 14:49:59 -0400 |
---|---|---|
committer | Olivier CrĂȘte <olivier.crete@collabora.co.uk> | 2009-07-14 14:50:38 -0400 |
commit | d02f45eefc3db282e31a28b433d3e5727f96b5ac (patch) | |
tree | f3136ca02eac0813f85243c86b5202913ec8b279 /transmitters/rawudp | |
parent | 56f2489d68fe881ed861f7fd057cd4ffe7be925d (diff) | |
download | farstream-d02f45eefc3db282e31a28b433d3e5727f96b5ac.tar.gz |
transmitters: set the ToS field on outgoing packets
Set the ToS field to the highest priority in the hope that this will help
reduce latency.
Diffstat (limited to 'transmitters/rawudp')
-rw-r--r-- | transmitters/rawudp/fs-rawudp-transmitter.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/transmitters/rawudp/fs-rawudp-transmitter.c b/transmitters/rawudp/fs-rawudp-transmitter.c index 4a1aab74..6de1fb0f 100644 --- a/transmitters/rawudp/fs-rawudp-transmitter.c +++ b/transmitters/rawudp/fs-rawudp-transmitter.c @@ -53,7 +53,7 @@ #else /*G_OS_WIN32*/ # include <netdb.h> # include <sys/socket.h> -# include <netinet/in.h> +# include <netinet/ip.h> # include <arpa/inet.h> #endif /*G_OS_WIN32*/ @@ -548,6 +548,7 @@ _bind_port ( int sock; struct sockaddr_in address; int retval; + int tos, prio; address.sin_family = AF_INET; address.sin_addr.s_addr = INADDR_ANY; @@ -597,6 +598,14 @@ _bind_port ( *used_port = port; + tos = IPTOS_LOWDELAY; + if (setsockopt (sock, IPPROTO_IP, IP_TOS, &tos, sizeof (tos)) < 0) + GST_WARNING ( "could not set TOS: %s", g_strerror (errno)); + + prio = 6; + if (setsockopt (sock, SOL_SOCKET, SO_PRIORITY, &prio, sizeof (tos)) < 0) + GST_WARNING ( "could not set socket priority: %s", g_strerror (errno)); + return sock; } |