[common] kvmfr: add a new frameSerial field to the KVMFRFrame struct

This new field is used so that when a new client connects an already
connected client can identify any repeated frame that is sent and ignore
it.
This commit is contained in:
Geoffrey McRae 2021-07-25 13:40:44 +10:00
parent f4daa9f527
commit b39f38350f
3 changed files with 5 additions and 2 deletions

View File

@ -28,7 +28,7 @@
#include "types.h" #include "types.h"
#define KVMFR_MAGIC "KVMFR---" #define KVMFR_MAGIC "KVMFR---"
#define KVMFR_VERSION 12 #define KVMFR_VERSION 13
#define KVMFR_MAX_DAMAGE_RECTS 64 #define KVMFR_MAX_DAMAGE_RECTS 64
@ -69,6 +69,7 @@ KVMFRCursor;
typedef struct KVMFRFrame typedef struct KVMFRFrame
{ {
uint32_t formatVer; // the frame format version number uint32_t formatVer; // the frame format version number
uint32_t frameSerial; // the unique frame number
FrameType type; // the frame data type FrameType type; // the frame data type
uint32_t width; // the frame width uint32_t width; // the frame width
uint32_t height; // the frame height uint32_t height; // the frame height

View File

@ -94,6 +94,7 @@ struct app
PLGMPMemory frameMemory[LGMP_Q_FRAME_LEN]; PLGMPMemory frameMemory[LGMP_Q_FRAME_LEN];
unsigned int frameIndex; unsigned int frameIndex;
bool frameValid; bool frameValid;
uint32_t frameSerial;
CaptureInterface * iface; CaptureInterface * iface;
@ -229,6 +230,7 @@ static bool sendFrame(void)
} }
fi->formatVer = frame.formatVer; fi->formatVer = frame.formatVer;
fi->frameSerial = app.frameSerial++;
fi->width = frame.width; fi->width = frame.width;
fi->height = frame.height; fi->height = frame.height;
fi->realHeight = frame.realHeight; fi->realHeight = frame.realHeight;

@ -1 +1 @@
Subproject commit d9b92c57a264ea86cf9dd462795fce76af003768 Subproject commit dde2d2427b574b28ad8669804aeb8236681cde94