mirror of
https://github.com/moonlight-stream/moonlight-common-c.git
synced 2025-08-17 17:05:50 +00:00
Refactor reference frame invalidation checks into one function
This commit is contained in:
parent
26fe1cb22c
commit
069f1475b6
@ -207,8 +207,7 @@ int getNextFrameInvalidationTuple(PQUEUED_FRAME_INVALIDATION_TUPLE* qfit) {
|
||||
void queueFrameInvalidationTuple(int startFrame, int endFrame) {
|
||||
LC_ASSERT(startFrame <= endFrame);
|
||||
|
||||
if (((NegotiatedVideoFormat & VIDEO_FORMAT_MASK_H264) && (VideoCallbacks.capabilities & CAPABILITY_REFERENCE_FRAME_INVALIDATION_AVC)) ||
|
||||
(((NegotiatedVideoFormat & VIDEO_FORMAT_MASK_H265) && (VideoCallbacks.capabilities & CAPABILITY_REFERENCE_FRAME_INVALIDATION_HEVC)))) {
|
||||
if (isReferenceFrameInvalidationEnabled()) {
|
||||
PQUEUED_FRAME_INVALIDATION_TUPLE qfit;
|
||||
qfit = malloc(sizeof(*qfit));
|
||||
if (qfit != NULL) {
|
||||
@ -500,8 +499,7 @@ static void requestInvalidateReferenceFrames(void) {
|
||||
long long payload[3];
|
||||
PQUEUED_FRAME_INVALIDATION_TUPLE qfit;
|
||||
|
||||
LC_ASSERT(((NegotiatedVideoFormat & VIDEO_FORMAT_MASK_H264) && (VideoCallbacks.capabilities & CAPABILITY_REFERENCE_FRAME_INVALIDATION_AVC)) ||
|
||||
((NegotiatedVideoFormat & VIDEO_FORMAT_MASK_H265) && (VideoCallbacks.capabilities & CAPABILITY_REFERENCE_FRAME_INVALIDATION_HEVC)));
|
||||
LC_ASSERT(isReferenceFrameInvalidationEnabled());
|
||||
|
||||
if (!getNextFrameInvalidationTuple(&qfit)) {
|
||||
return;
|
||||
|
@ -24,6 +24,7 @@ extern volatile int ConnectionInterrupted;
|
||||
int isBeforeSignedInt(int numA, int numB, int ambiguousCase);
|
||||
int serviceEnetHost(ENetHost* client, ENetEvent* event, enet_uint32 timeoutMs);
|
||||
int extractVersionQuadFromString(const char* string, int* quad);
|
||||
int isReferenceFrameInvalidationEnabled(void);
|
||||
|
||||
void fixupMissingCallbacks(PDECODER_RENDERER_CALLBACKS* drCallbacks, PAUDIO_RENDERER_CALLBACKS* arCallbacks,
|
||||
PCONNECTION_LISTENER_CALLBACKS* clCallbacks);
|
||||
|
@ -80,6 +80,12 @@ int extractVersionQuadFromString(const char* string, int* quad) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int isReferenceFrameInvalidationEnabled(void) {
|
||||
LC_ASSERT(NegotiatedVideoFormat != 0);
|
||||
return ((NegotiatedVideoFormat & VIDEO_FORMAT_MASK_H264) && (VideoCallbacks.capabilities & CAPABILITY_REFERENCE_FRAME_INVALIDATION_AVC)) ||
|
||||
((NegotiatedVideoFormat & VIDEO_FORMAT_MASK_H265) && (VideoCallbacks.capabilities & CAPABILITY_REFERENCE_FRAME_INVALIDATION_HEVC));
|
||||
}
|
||||
|
||||
void LiInitializeStreamConfiguration(PSTREAM_CONFIGURATION streamConfig) {
|
||||
memset(streamConfig, 0, sizeof(*streamConfig));
|
||||
}
|
||||
|
@ -41,11 +41,7 @@ void initializeVideoDepacketizer(int pktSize) {
|
||||
lastPacketInStream = -1;
|
||||
decodingFrame = 0;
|
||||
firstPacketReceiveTime = 0;
|
||||
|
||||
LC_ASSERT(NegotiatedVideoFormat != 0);
|
||||
strictIdrFrameWait =
|
||||
!(((NegotiatedVideoFormat & VIDEO_FORMAT_MASK_H264) && (VideoCallbacks.capabilities & CAPABILITY_REFERENCE_FRAME_INVALIDATION_AVC)) ||
|
||||
(((NegotiatedVideoFormat & VIDEO_FORMAT_MASK_H265) && (VideoCallbacks.capabilities & CAPABILITY_REFERENCE_FRAME_INVALIDATION_HEVC))));
|
||||
strictIdrFrameWait = !isReferenceFrameInvalidationEnabled();
|
||||
}
|
||||
|
||||
// Free the NAL chain
|
||||
|
Loading…
x
Reference in New Issue
Block a user