summaryrefslogtreecommitdiff
path: root/transmitters/rawudp
diff options
context:
space:
mode:
authorOlivier CrĂȘte <olivier.crete@collabora.co.uk>2009-07-14 14:49:59 -0400
committerOlivier CrĂȘte <olivier.crete@collabora.co.uk>2009-07-14 14:50:38 -0400
commitd02f45eefc3db282e31a28b433d3e5727f96b5ac (patch)
treef3136ca02eac0813f85243c86b5202913ec8b279 /transmitters/rawudp
parent56f2489d68fe881ed861f7fd057cd4ffe7be925d (diff)
downloadfarstream-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.c11
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;
}