mirror of
https://github.com/moonlight-stream/moonlight-common-c.git
synced 2025-08-17 17:05:50 +00:00
Merge pull request #10 from irtimmer/bufferSize
Reduce audio receive buffer size
This commit is contained in:
commit
c421740ded
@ -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();
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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);
|
@ -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();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user