From bfd368769e234188a3b17025623de7f39c4b858c Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sat, 20 May 2017 17:32:02 -0700 Subject: [PATCH] Force an IDR frame request when the decode unit queue overflows --- src/ControlStream.c | 5 ----- src/Limelight-internal.h | 1 - src/VideoDepacketizer.c | 4 ++-- 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/src/ControlStream.c b/src/ControlStream.c index 26fe142..6ab89f4 100644 --- a/src/ControlStream.c +++ b/src/ControlStream.c @@ -233,11 +233,6 @@ void requestIdrOnDemand(void) { PltSetEvent(&invalidateRefFramesEvent); } -// Invalidate reference frames if the decoder is too slow -void connectionSinkTooSlow(int startFrame, int endFrame) { - queueFrameInvalidationTuple(startFrame, endFrame); -} - // Invalidate reference frames lost by the network void connectionDetectedFrameLoss(int startFrame, int endFrame) { queueFrameInvalidationTuple(startFrame, endFrame); diff --git a/src/Limelight-internal.h b/src/Limelight-internal.h index efd5e96..87bf245 100644 --- a/src/Limelight-internal.h +++ b/src/Limelight-internal.h @@ -33,7 +33,6 @@ int startControlStream(void); int stopControlStream(void); void destroyControlStream(void); void requestIdrOnDemand(void); -void connectionSinkTooSlow(int startFrame, int endFrame); void connectionDetectedFrameLoss(int startFrame, int endFrame); void connectionReceivedCompleteFrame(int frameIndex); void connectionSawFrame(int frameIndex); diff --git a/src/VideoDepacketizer.c b/src/VideoDepacketizer.c index b337330..e4f1484 100644 --- a/src/VideoDepacketizer.c +++ b/src/VideoDepacketizer.c @@ -249,8 +249,8 @@ static void reassembleFrame(int frameNumber) { // Flush the decode unit queue freeDecodeUnitList(LbqFlushQueueItems(&decodeUnitQueue)); - // FIXME: Get proper lower bound - connectionSinkTooSlow(0, frameNumber); + // FIXME: Get proper bounds to use reference frame invalidation + requestIdrOnDemand(); return; } }