mirror of
https://github.com/moonlight-stream/moonlight-common-c.git
synced 2026-06-18 14:51:30 +00:00
Force an IDR frame request when the decode unit queue overflows
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user