mirror of
https://github.com/moonlight-stream/moonlight-common-c.git
synced 2025-08-18 09:25:49 +00:00
Fix IDR frame dropping race condition which seems to occur frequently with GFE 3.17
This commit is contained in:
parent
9360adb39a
commit
a653f4d3e0
@ -582,8 +582,17 @@ void processRtpPayload(PNV_VIDEO_PACKET videoPacket, int length, unsigned long l
|
|||||||
// depacketizer will next try to process a non-SOF packet,
|
// depacketizer will next try to process a non-SOF packet,
|
||||||
// and cause it to assert.
|
// and cause it to assert.
|
||||||
if (dropStatePending) {
|
if (dropStatePending) {
|
||||||
dropFrameState();
|
if (nalChainHead && nalChainHead->bufferType != BUFFER_TYPE_PICDATA) {
|
||||||
return;
|
// Don't drop the frame state if this frame is an IDR frame itself,
|
||||||
|
// otherwise we'll lose this IDR frame without another in flight
|
||||||
|
// and have to wait until we hit our consecutive drop limit to
|
||||||
|
// request a new one (potentially several seconds).
|
||||||
|
dropStatePending = 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
dropFrameState();
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
reassembleFrame(frameIndex);
|
reassembleFrame(frameIndex);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user