Add support for handling alternate max packet sizes

This commit is contained in:
Cameron Gutman 2014-06-29 00:06:29 -07:00
parent a38e1f37eb
commit 8c8fcc7cbe
3 changed files with 8 additions and 6 deletions

View File

@ -17,7 +17,7 @@ void connectionDetectedFrameLoss(int startFrame, int endFrame);
void connectionReceivedFrame(int frameIndex); void connectionReceivedFrame(int frameIndex);
void connectionLostPackets(int lastReceivedPacket, int nextReceivedPacket); void connectionLostPackets(int lastReceivedPacket, int nextReceivedPacket);
void initializeVideoDepacketizer(void); void initializeVideoDepacketizer(int pktSize);
void destroyVideoDepacketizer(void); void destroyVideoDepacketizer(void);
void processRtpPayload(PNV_VIDEO_PACKET videoPacket, int length); void processRtpPayload(PNV_VIDEO_PACKET videoPacket, int length);
int getNextDecodeUnit(PDECODE_UNIT *du); int getNextDecodeUnit(PDECODE_UNIT *du);

View File

@ -15,17 +15,19 @@ static int gotNextFrameStart;
static int lastPacketInStream = 0; static int lastPacketInStream = 0;
static LINKED_BLOCKING_QUEUE decodeUnitQueue; static LINKED_BLOCKING_QUEUE decodeUnitQueue;
static int packetSize;
static unsigned short lastSequenceNumber; static unsigned short lastSequenceNumber;
typedef struct _BUFFER_DESC { typedef struct _BUFFER_DESC {
char* data; char* data;
int offset; unsigned int offset;
int length; unsigned int length;
} BUFFER_DESC, *PBUFFER_DESC; } BUFFER_DESC, *PBUFFER_DESC;
void initializeVideoDepacketizer(void) { void initializeVideoDepacketizer(int pktSize) {
LbqInitializeLinkedBlockingQueue(&decodeUnitQueue, 15); LbqInitializeLinkedBlockingQueue(&decodeUnitQueue, 15);
packetSize = pktSize;
} }
static void clearAvcNalState(void) { static void clearAvcNalState(void) {
@ -243,7 +245,7 @@ void processRtpPayload(PNV_VIDEO_PACKET videoPacket, int length) {
currentPos.offset = 0; currentPos.offset = 0;
currentPos.length = length - sizeof(*videoPacket); currentPos.length = length - sizeof(*videoPacket);
if (currentPos.length < 968) { if (currentPos.length < packetSize - sizeof(NV_VIDEO_PACKET)) {
processRtpPayloadSlow(videoPacket, &currentPos); processRtpPayloadSlow(videoPacket, &currentPos);
return; return;
} }

View File

@ -32,7 +32,7 @@ void initializeVideoStream(IP_ADDRESS host, PSTREAM_CONFIGURATION streamConfig,
LbqInitializeLinkedBlockingQueue(&packetQueue, 30); LbqInitializeLinkedBlockingQueue(&packetQueue, 30);
initializeVideoDepacketizer(); initializeVideoDepacketizer(configuration.packetSize);
} }
void destroyVideoStream(void) { void destroyVideoStream(void) {