Merge pull request #10 from irtimmer/bufferSize

Reduce audio receive buffer size
This commit is contained in:
Cameron Gutman 2015-08-11 19:14:06 -07:00
commit c421740ded
4 changed files with 8 additions and 7 deletions

View File

@ -18,6 +18,7 @@ static unsigned short lastSeq = 0;
#define RTP_PORT 48000 #define RTP_PORT 48000
#define MAX_PACKET_SIZE 100 #define MAX_PACKET_SIZE 100
#define RTP_RECV_BUFFER 12 * MAX_PACKET_SIZE
typedef struct _QUEUED_AUDIO_PACKET { typedef struct _QUEUED_AUDIO_PACKET {
// data must remain at the front // data must remain at the front
@ -239,7 +240,7 @@ int startAudioStream(void) {
AudioCallbacks.init(); AudioCallbacks.init();
rtpSocket = bindUdpSocket(RemoteAddr.ss_family); rtpSocket = bindUdpSocket(RemoteAddr.ss_family, RTP_RECV_BUFFER);
if (rtpSocket == INVALID_SOCKET) { if (rtpSocket == INVALID_SOCKET) {
return LastSocketFail(); return LastSocketFail();
} }

View File

@ -21,7 +21,7 @@ void addrToUrlSafeString(struct sockaddr_storage *addr, char* string)
} }
} }
SOCKET bindUdpSocket(int addrfamily) { SOCKET bindUdpSocket(int addrfamily, int bufferSize) {
SOCKET s; SOCKET s;
struct sockaddr_storage addr; struct sockaddr_storage addr;
int val; int val;
@ -54,9 +54,7 @@ SOCKET bindUdpSocket(int addrfamily) {
setsockopt(s, SOL_SOCKET, SO_NOSIGPIPE, (char* )&val, sizeof(val)); setsockopt(s, SOL_SOCKET, SO_NOSIGPIPE, (char* )&val, sizeof(val));
#endif #endif
// Set the receive buffer to 64KB by default setsockopt(s, SOL_SOCKET, SO_RCVBUF, (char*) &bufferSize, sizeof(bufferSize));
val = 65536;
setsockopt(s, SOL_SOCKET, SO_RCVBUF, (char*) &val, sizeof(val));
return s; return s;
} }

View File

@ -40,5 +40,5 @@ typedef socklen_t SOCKADDR_LEN;
void addrToUrlSafeString(struct sockaddr_storage *addr, char* string); void addrToUrlSafeString(struct sockaddr_storage *addr, char* string);
SOCKET connectTcpSocket(struct sockaddr_storage *dstaddr, SOCKADDR_LEN addrlen, unsigned short port); SOCKET connectTcpSocket(struct sockaddr_storage *dstaddr, SOCKADDR_LEN addrlen, unsigned short port);
SOCKET bindUdpSocket(int addrfamily); SOCKET bindUdpSocket(int addrfamily, int bufferSize);
int enableNoDelay(SOCKET s); int enableNoDelay(SOCKET s);

View File

@ -9,6 +9,8 @@
#define RTP_PORT 47998 #define RTP_PORT 47998
#define FIRST_FRAME_PORT 47996 #define FIRST_FRAME_PORT 47996
#define RTP_RECV_BUFFER 64 * 1024
static RTP_REORDER_QUEUE rtpQueue; static RTP_REORDER_QUEUE rtpQueue;
static SOCKET rtpSocket = INVALID_SOCKET; static SOCKET rtpSocket = INVALID_SOCKET;
@ -187,7 +189,7 @@ int startVideoStream(void* rendererContext, int drFlags) {
VideoCallbacks.setup(StreamConfig.width, VideoCallbacks.setup(StreamConfig.width,
StreamConfig.height, StreamConfig.fps, rendererContext, drFlags); StreamConfig.height, StreamConfig.fps, rendererContext, drFlags);
rtpSocket = bindUdpSocket(RemoteAddr.ss_family); rtpSocket = bindUdpSocket(RemoteAddr.ss_family, RTP_RECV_BUFFER);
if (rtpSocket == INVALID_SOCKET) { if (rtpSocket == INVALID_SOCKET) {
return LastSocketError(); return LastSocketError();
} }