From be438856af5bf5b87cc43715b82eb7b503f9c3a6 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Tue, 8 Sep 2026 22:58:14 -0500 Subject: [PATCH] Fix handling of a partially dropped IDR frame --- src/VideoDepacketizer.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/VideoDepacketizer.c b/src/VideoDepacketizer.c index 43f2df9..5baa1d5 100644 --- a/src/VideoDepacketizer.c +++ b/src/VideoDepacketizer.c @@ -103,9 +103,10 @@ static void dropFrameState(void) { // We're dropping frame state now dropStatePending = false; - if (strictIdrFrameWait || !idrFrameProcessed || waitingForIdrFrame) { + if (strictIdrFrameWait || !idrFrameProcessed || waitingForIdrFrame || (nalChainHead && frameType == FRAME_TYPE_IDR)) { // We'll need an IDR frame now if we're in non-RFI mode, if we've never - // received an IDR frame, or if we explicitly need an IDR frame. + // received an IDR frame, if we explicitly need an IDR frame, or if we + // just dropped a partially processed IDR frame. waitingForIdrFrame = true; } else {