[client/idd] network: process only damaged PyroWave blocks

Limit GPU encoding and client decoding to damage-derived regions.
Preserve per-level sparse transform state and cover mirrored inverse
edges.

Keep cumulative canonical packets so dropped frames remain recoverable.
This commit is contained in:
Geoffrey McRae
2026-10-08 12:46:42 +11:00
parent ccdcad14ca
commit 5eca9a687f
5 changed files with 2028 additions and 332 deletions

View File

@@ -35,6 +35,7 @@ typedef struct NetworkVideoDecoder NetworkVideoDecoder;
typedef enum NetworkVideoDecodeResult
{
NETWORK_VIDEO_DECODE_OK,
NETWORK_VIDEO_DECODE_NO_FRAME,
NETWORK_VIDEO_DECODE_UNSUPPORTED,
NETWORK_VIDEO_DECODE_CORRUPT,
NETWORK_VIDEO_DECODE_ERROR,
@@ -43,10 +44,12 @@ NetworkVideoDecodeResult;
typedef struct NetworkVideoDecodedFrame
{
LG_ExternalFrame * externalFrame;
LG_TransportFrameFormat format;
LG_TransportFrameTiming timing;
uint64_t decodeTimeNs;
LG_ExternalFrame * externalFrame;
LG_TransportFrameFormat format;
LG_TransportFrameTiming timing;
KVMFRFrameDamageRect damageRects[LG_TRANSPORT_MAX_DAMAGE_RECTS];
uint32_t damageRectsCount;
uint64_t decodeTimeNs;
}
NetworkVideoDecodedFrame;