From 5f92ecafe75bfeded2fe030c13ac7eaa7e621e36 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Thu, 6 Oct 2022 21:25:48 -0500 Subject: [PATCH] Avoid triggering RFI wait code for decode unit queue overflow --- src/VideoDepacketizer.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/VideoDepacketizer.c b/src/VideoDepacketizer.c index e143853..f3a0206 100644 --- a/src/VideoDepacketizer.c +++ b/src/VideoDepacketizer.c @@ -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; }