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