From 9361c325bb7c3c0208402401f650c64be24ed8db Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Tue, 1 Jun 2021 22:57:26 -0500 Subject: [PATCH] Rename RtpFecQueue to RtpVideoQueue to match RtpAudioQueue --- src/Limelight-internal.h | 4 +-- src/{RtpFecQueue.c => RtpVideoQueue.c} | 38 +++++++++++++------------- src/{RtpFecQueue.h => RtpVideoQueue.h} | 32 +++++++++++----------- src/VideoDepacketizer.c | 6 ++-- src/VideoStream.c | 10 +++---- 5 files changed, 45 insertions(+), 45 deletions(-) rename src/{RtpFecQueue.c => RtpVideoQueue.c} (95%) rename src/{RtpFecQueue.h => RtpVideoQueue.h} (50%) diff --git a/src/Limelight-internal.h b/src/Limelight-internal.h index f3150b4..6bae123 100644 --- a/src/Limelight-internal.h +++ b/src/Limelight-internal.h @@ -7,8 +7,8 @@ #include "PlatformCrypto.h" #include "Video.h" #include "Input.h" -#include "RtpFecQueue.h" #include "RtpAudioQueue.h" +#include "RtpVideoQueue.h" #include "ByteBuffer.h" #include @@ -88,7 +88,7 @@ int performRtspHandshake(void); void initializeVideoDepacketizer(int pktSize); void destroyVideoDepacketizer(void); -void queueRtpPacket(PRTPFEC_QUEUE_ENTRY queueEntry); +void queueRtpPacket(PRTPV_QUEUE_ENTRY queueEntry); void stopVideoDepacketizer(void); void requestDecoderRefresh(void); diff --git a/src/RtpFecQueue.c b/src/RtpVideoQueue.c similarity index 95% rename from src/RtpFecQueue.c rename to src/RtpVideoQueue.c index eb0f6f3..80f7eae 100644 --- a/src/RtpFecQueue.c +++ b/src/RtpVideoQueue.c @@ -8,7 +8,7 @@ #define FEC_VALIDATION_MODE #endif -void RtpfInitializeQueue(PRTP_FEC_QUEUE queue) { +void RtpvInitializeQueue(PRTP_VIDEO_QUEUE queue) { reed_solomon_init(); memset(queue, 0, sizeof(*queue)); @@ -17,9 +17,9 @@ void RtpfInitializeQueue(PRTP_FEC_QUEUE queue) { queue->multiFecCapable = APP_VERSION_AT_LEAST(7, 1, 431); } -static void purgeListEntries(PRTPFEC_QUEUE_LIST list) { +static void purgeListEntries(PRTPV_QUEUE_LIST list) { while (list->head != NULL) { - PRTPFEC_QUEUE_ENTRY entry = list->head; + PRTPV_QUEUE_ENTRY entry = list->head; list->head = entry->next; free(entry->packet); } @@ -28,12 +28,12 @@ static void purgeListEntries(PRTPFEC_QUEUE_LIST list) { list->count = 0; } -void RtpfCleanupQueue(PRTP_FEC_QUEUE queue) { +void RtpvCleanupQueue(PRTP_VIDEO_QUEUE queue) { purgeListEntries(&queue->pendingFecBlockList); purgeListEntries(&queue->completedFecBlockList); } -static void insertEntryIntoList(PRTPFEC_QUEUE_LIST list, PRTPFEC_QUEUE_ENTRY entry) { +static void insertEntryIntoList(PRTPV_QUEUE_LIST list, PRTPV_QUEUE_ENTRY entry) { LC_ASSERT(entry->prev == NULL); LC_ASSERT(entry->next == NULL); @@ -44,7 +44,7 @@ static void insertEntryIntoList(PRTPFEC_QUEUE_LIST list, PRTPFEC_QUEUE_ENTRY ent } else { LC_ASSERT(list->count != 0); - PRTPFEC_QUEUE_ENTRY oldTail = list->tail; + PRTPV_QUEUE_ENTRY oldTail = list->tail; entry->prev = oldTail; LC_ASSERT(oldTail->next == NULL); oldTail->next = entry; @@ -54,7 +54,7 @@ static void insertEntryIntoList(PRTPFEC_QUEUE_LIST list, PRTPFEC_QUEUE_ENTRY ent list->count++; } -static void removeEntryFromList(PRTPFEC_QUEUE_LIST list, PRTPFEC_QUEUE_ENTRY entry) { +static void removeEntryFromList(PRTPV_QUEUE_LIST list, PRTPV_QUEUE_ENTRY entry) { LC_ASSERT(entry != NULL); LC_ASSERT(list->count != 0); LC_ASSERT(list->head != NULL); @@ -83,8 +83,8 @@ static void removeEntryFromList(PRTPFEC_QUEUE_LIST list, PRTPFEC_QUEUE_ENTRY ent } // newEntry is contained within the packet buffer so we free the whole entry by freeing entry->packet -static bool queuePacket(PRTP_FEC_QUEUE queue, PRTPFEC_QUEUE_ENTRY newEntry, PRTP_PACKET packet, int length, bool isParity) { - PRTPFEC_QUEUE_ENTRY entry; +static bool queuePacket(PRTP_VIDEO_QUEUE queue, PRTPV_QUEUE_ENTRY newEntry, PRTP_PACKET packet, int length, bool isParity) { + PRTPV_QUEUE_ENTRY entry; LC_ASSERT(!isBefore16(packet->sequenceNumber, queue->nextContiguousSequenceNumber)); @@ -129,7 +129,7 @@ static bool queuePacket(PRTP_FEC_QUEUE queue, PRTPFEC_QUEUE_ENTRY newEntry, PRTP continue // Returns 0 if the frame is completely constructed -static int reconstructFrame(PRTP_FEC_QUEUE queue) { +static int reconstructFrame(PRTP_VIDEO_QUEUE queue) { unsigned int totalPackets = U16(queue->bufferHighestSequenceNumber - queue->bufferLowestSequenceNumber) + 1; int ret; @@ -184,7 +184,7 @@ static int reconstructFrame(PRTP_FEC_QUEUE queue) { memset(marks, 1, sizeof(char) * (totalPackets)); int receiveSize = StreamConfig.packetSize + MAX_RTP_HEADER_SIZE; - int packetBufferSize = receiveSize + sizeof(RTPFEC_QUEUE_ENTRY); + int packetBufferSize = receiveSize + sizeof(RTPV_QUEUE_ENTRY); #ifdef FEC_VALIDATION_MODE // Choose a packet to drop @@ -193,7 +193,7 @@ static int reconstructFrame(PRTP_FEC_QUEUE queue) { int droppedRtpPacketLength = 0; #endif - PRTPFEC_QUEUE_ENTRY entry = queue->pendingFecBlockList.head; + PRTPV_QUEUE_ENTRY entry = queue->pendingFecBlockList.head; while (entry != NULL) { unsigned int index = U16(entry->packet->sequenceNumber - queue->bufferLowestSequenceNumber); @@ -241,7 +241,7 @@ cleanup_packets: if (marks[i]) { // Only submit frame data, not FEC packets if (ret == 0 && i < queue->bufferDataPackets) { - PRTPFEC_QUEUE_ENTRY queueEntry = (PRTPFEC_QUEUE_ENTRY)&packets[i][receiveSize]; + PRTPV_QUEUE_ENTRY queueEntry = (PRTPV_QUEUE_ENTRY)&packets[i][receiveSize]; PRTP_PACKET rtpPacket = (PRTP_PACKET) packets[i]; rtpPacket->sequenceNumber = U16(i + queue->bufferLowestSequenceNumber); rtpPacket->header = queue->pendingFecBlockList.head->packet->header; @@ -353,11 +353,11 @@ cleanup: return ret; } -static void stageCompleteFecBlock(PRTP_FEC_QUEUE queue) { +static void stageCompleteFecBlock(PRTP_VIDEO_QUEUE queue) { unsigned int nextSeqNum = queue->bufferLowestSequenceNumber; while (queue->pendingFecBlockList.count > 0) { - PRTPFEC_QUEUE_ENTRY entry = queue->pendingFecBlockList.head; + PRTPV_QUEUE_ENTRY entry = queue->pendingFecBlockList.head; unsigned int lowestRtpSequenceNumber = entry->packet->sequenceNumber; @@ -367,7 +367,7 @@ static void stageCompleteFecBlock(PRTP_FEC_QUEUE queue) { // Never return parity packets if (entry->isParity) { - PRTPFEC_QUEUE_ENTRY parityEntry = entry; + PRTPV_QUEUE_ENTRY parityEntry = entry; // Skip this entry entry = parityEntry->next; @@ -414,9 +414,9 @@ static void stageCompleteFecBlock(PRTP_FEC_QUEUE queue) { } } -static void submitCompletedFrame(PRTP_FEC_QUEUE queue) { +static void submitCompletedFrame(PRTP_VIDEO_QUEUE queue) { while (queue->completedFecBlockList.count > 0) { - PRTPFEC_QUEUE_ENTRY entry = queue->completedFecBlockList.head; + PRTPV_QUEUE_ENTRY entry = queue->completedFecBlockList.head; // Parity packets should have been removed by stageCompleteFecBlock() LC_ASSERT(!entry->isParity); @@ -427,7 +427,7 @@ static void submitCompletedFrame(PRTP_FEC_QUEUE queue) { } } -int RtpfAddPacket(PRTP_FEC_QUEUE queue, PRTP_PACKET packet, int length, PRTPFEC_QUEUE_ENTRY packetEntry) { +int RtpvAddPacket(PRTP_VIDEO_QUEUE queue, PRTP_PACKET packet, int length, PRTPV_QUEUE_ENTRY packetEntry) { if (isBefore16(packet->sequenceNumber, queue->nextContiguousSequenceNumber)) { // Reject packets behind our current buffer window return RTPF_RET_REJECTED; diff --git a/src/RtpFecQueue.h b/src/RtpVideoQueue.h similarity index 50% rename from src/RtpFecQueue.h rename to src/RtpVideoQueue.h index 55d1932..f6bb963 100644 --- a/src/RtpFecQueue.h +++ b/src/RtpVideoQueue.h @@ -2,25 +2,25 @@ #include "Video.h" -typedef struct _RTPFEC_QUEUE_ENTRY { - struct _RTPFEC_QUEUE_ENTRY* next; - struct _RTPFEC_QUEUE_ENTRY* prev; +typedef struct _RTPV_QUEUE_ENTRY { + struct _RTPV_QUEUE_ENTRY* next; + struct _RTPV_QUEUE_ENTRY* prev; PRTP_PACKET packet; uint64_t receiveTimeMs; uint32_t presentationTimeMs; int length; bool isParity; -} RTPFEC_QUEUE_ENTRY, *PRTPFEC_QUEUE_ENTRY; +} RTPV_QUEUE_ENTRY, *PRTPV_QUEUE_ENTRY; -typedef struct _RTPFEC_QUEUE_LIST { - PRTPFEC_QUEUE_ENTRY head; - PRTPFEC_QUEUE_ENTRY tail; +typedef struct _RTPV_QUEUE_LIST { + PRTPV_QUEUE_ENTRY head; + PRTPV_QUEUE_ENTRY tail; uint32_t count; -} RTPFEC_QUEUE_LIST, *PRTPFEC_QUEUE_LIST; +} RTPV_QUEUE_LIST, *PRTPV_QUEUE_LIST; -typedef struct _RTP_FEC_QUEUE { - RTPFEC_QUEUE_LIST pendingFecBlockList; - RTPFEC_QUEUE_LIST completedFecBlockList; +typedef struct _RTP_VIDEO_QUEUE { + RTPV_QUEUE_LIST pendingFecBlockList; + RTPV_QUEUE_LIST completedFecBlockList; uint64_t bufferFirstRecvTimeMs; uint32_t bufferLowestSequenceNumber; @@ -37,12 +37,12 @@ typedef struct _RTP_FEC_QUEUE { bool multiFecCapable; uint8_t multiFecCurrentBlockNumber; uint8_t multiFecLastBlockNumber; -} RTP_FEC_QUEUE, *PRTP_FEC_QUEUE; +} RTP_VIDEO_QUEUE, *PRTP_VIDEO_QUEUE; #define RTPF_RET_QUEUED 0 #define RTPF_RET_REJECTED 1 -void RtpfInitializeQueue(PRTP_FEC_QUEUE queue); -void RtpfCleanupQueue(PRTP_FEC_QUEUE queue); -int RtpfAddPacket(PRTP_FEC_QUEUE queue, PRTP_PACKET packet, int length, PRTPFEC_QUEUE_ENTRY packetEntry); -void RtpfSubmitQueuedPackets(PRTP_FEC_QUEUE queue); +void RtpvInitializeQueue(PRTP_VIDEO_QUEUE queue); +void RtpvCleanupQueue(PRTP_VIDEO_QUEUE queue); +int RtpvAddPacket(PRTP_VIDEO_QUEUE queue, PRTP_PACKET packet, int length, PRTPV_QUEUE_ENTRY packetEntry); +void RtpvSubmitQueuedPackets(PRTP_VIDEO_QUEUE queue); diff --git a/src/VideoDepacketizer.c b/src/VideoDepacketizer.c index 80f7457..04846e8 100644 --- a/src/VideoDepacketizer.c +++ b/src/VideoDepacketizer.c @@ -755,9 +755,9 @@ static void processRtpPayload(PNV_VIDEO_PACKET videoPacket, int length, } // Add an RTP Packet to the queue -void queueRtpPacket(PRTPFEC_QUEUE_ENTRY queueEntryPtr) { +void queueRtpPacket(PRTPV_QUEUE_ENTRY queueEntryPtr) { int dataOffset; - RTPFEC_QUEUE_ENTRY queueEntry = *queueEntryPtr; + RTPV_QUEUE_ENTRY queueEntry = *queueEntryPtr; LC_ASSERT(!queueEntry.isParity); LC_ASSERT(queueEntry.receiveTimeMs != 0); @@ -770,7 +770,7 @@ void queueRtpPacket(PRTPFEC_QUEUE_ENTRY queueEntryPtr) { // Reuse the memory reserved for the RTPFEC_QUEUE_ENTRY to store the LENTRY_INTERNAL // now that we're in the depacketizer. We saved a copy of the real FEC queue entry // on the stack here so we can safely modify this memory in place. - LC_ASSERT(sizeof(LENTRY_INTERNAL) <= sizeof(RTPFEC_QUEUE_ENTRY)); + LC_ASSERT(sizeof(LENTRY_INTERNAL) <= sizeof(RTPV_QUEUE_ENTRY)); PLENTRY_INTERNAL existingEntry = (PLENTRY_INTERNAL)queueEntryPtr; existingEntry->allocPtr = queueEntry.packet; diff --git a/src/VideoStream.c b/src/VideoStream.c index a9fd7ab..ff41fe9 100644 --- a/src/VideoStream.c +++ b/src/VideoStream.c @@ -8,7 +8,7 @@ #define RTP_RECV_BUFFER (512 * 1024) -static RTP_FEC_QUEUE rtpQueue; +static RTP_VIDEO_QUEUE rtpQueue; static SOCKET rtpSocket = INVALID_SOCKET; static SOCKET firstFrameSocket = INVALID_SOCKET; @@ -30,7 +30,7 @@ static bool receivedFullFrame; // Initialize the video stream void initializeVideoStream(void) { initializeVideoDepacketizer(StreamConfig.packetSize); - RtpfInitializeQueue(&rtpQueue); //TODO RTP_QUEUE_DELAY + RtpvInitializeQueue(&rtpQueue); receivedDataFromPeer = false; firstDataTimeMs = 0; receivedFullFrame = false; @@ -39,7 +39,7 @@ void initializeVideoStream(void) { // Clean up the video stream void destroyVideoStream(void) { destroyVideoDepacketizer(); - RtpfCleanupQueue(&rtpQueue); + RtpvCleanupQueue(&rtpQueue); } // UDP Ping proc @@ -71,7 +71,7 @@ static void ReceiveThreadProc(void* context) { int waitingForVideoMs; receiveSize = StreamConfig.packetSize + MAX_RTP_HEADER_SIZE; - bufferSize = receiveSize + sizeof(RTPFEC_QUEUE_ENTRY); + bufferSize = receiveSize + sizeof(RTPV_QUEUE_ENTRY); buffer = NULL; if (setNonFatalRecvTimeoutMs(rtpSocket, UDP_RECV_POLL_TIMEOUT_MS) < 0) { @@ -141,7 +141,7 @@ static void ReceiveThreadProc(void* context) { packet->timestamp = BE32(packet->timestamp); packet->ssrc = BE32(packet->ssrc); - queueStatus = RtpfAddPacket(&rtpQueue, packet, err, (PRTPFEC_QUEUE_ENTRY)&buffer[receiveSize]); + queueStatus = RtpvAddPacket(&rtpQueue, packet, err, (PRTPV_QUEUE_ENTRY)&buffer[receiveSize]); if (queueStatus == RTPF_RET_QUEUED) { // The queue owns the buffer