Force an IDR frame request when the decode unit queue overflows

This commit is contained in:
Cameron Gutman
2017-05-20 17:32:02 -07:00
parent 2d7bf5be82
commit bfd368769e
3 changed files with 2 additions and 8 deletions
-5
View File
@@ -233,11 +233,6 @@ void requestIdrOnDemand(void) {
PltSetEvent(&invalidateRefFramesEvent); 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 // Invalidate reference frames lost by the network
void connectionDetectedFrameLoss(int startFrame, int endFrame) { void connectionDetectedFrameLoss(int startFrame, int endFrame) {
queueFrameInvalidationTuple(startFrame, endFrame); queueFrameInvalidationTuple(startFrame, endFrame);
-1
View File
@@ -33,7 +33,6 @@ int startControlStream(void);
int stopControlStream(void); int stopControlStream(void);
void destroyControlStream(void); void destroyControlStream(void);
void requestIdrOnDemand(void); void requestIdrOnDemand(void);
void connectionSinkTooSlow(int startFrame, int endFrame);
void connectionDetectedFrameLoss(int startFrame, int endFrame); void connectionDetectedFrameLoss(int startFrame, int endFrame);
void connectionReceivedCompleteFrame(int frameIndex); void connectionReceivedCompleteFrame(int frameIndex);
void connectionSawFrame(int frameIndex); void connectionSawFrame(int frameIndex);
+2 -2
View File
@@ -249,8 +249,8 @@ static void reassembleFrame(int frameNumber) {
// Flush the decode unit queue // Flush the decode unit queue
freeDecodeUnitList(LbqFlushQueueItems(&decodeUnitQueue)); freeDecodeUnitList(LbqFlushQueueItems(&decodeUnitQueue));
// FIXME: Get proper lower bound // FIXME: Get proper bounds to use reference frame invalidation
connectionSinkTooSlow(0, frameNumber); requestIdrOnDemand();
return; return;
} }
} }