Avoid triggering RFI wait code for decode unit queue overflow

This commit is contained in:
Cameron Gutman 2022-10-06 21:25:48 -05:00
commit 5f92ecafe7

View file

@ -402,6 +402,9 @@ static void reassembleFrame(int frameNumber) {
if (LbqOfferQueueItem(&decodeUnitQueue, qdu, &qdu->entry) == LBQ_BOUND_EXCEEDED) {
Limelog("Video decode unit queue overflow\n");
// RFI recovery is not supported here
waitingForIdrFrame = true;
// Clear NAL state for the frame that we failed to enqueue
nalChainHead = qdu->decodeUnit.bufferList;
nalChainDataLength = qdu->decodeUnit.fullLength;
@ -413,8 +416,7 @@ static void reassembleFrame(int frameNumber) {
// Free all frames in the decode unit queue
freeDecodeUnitList(LbqFlushQueueItems(&decodeUnitQueue));
// Request an IDR frame to recover (RFI recovery is not supported here)
waitingForIdrFrame = true;
// Request an IDR frame to recover
LiRequestIdrFrame();
return;
}