diff --git a/src/Limelight.h b/src/Limelight.h index 31b3ff4..5bdf7d5 100644 --- a/src/Limelight.h +++ b/src/Limelight.h @@ -51,6 +51,11 @@ typedef struct _STREAM_CONFIGURATION { // (or in addition to) improving image quality. int hevcBitratePercentageMultiplier; + // If specified, the client's display refresh rate x 100. For example, + // 59.94 Hz would be specified as 5994. This is used by recent versions + // of GFE for enhanced frame pacing. + int clientRefreshRateX100; + // AES encryption data for the remote input stream. This must be // the same as what was passed as rikey and rikeyid // in /launch and /resume requests. diff --git a/src/SdpGenerator.c b/src/SdpGenerator.c index 98f7a8f..4653b45 100644 --- a/src/SdpGenerator.c +++ b/src/SdpGenerator.c @@ -334,6 +334,9 @@ static PSDP_OPTION getAttributesList(char*urlSafeAddr) { // some decoders that don't like the default of having 16 reference frames. err |= addAttributeString(&optionHead, "x-nv-video[0].maxNumReferenceFrames", "1"); } + + sprintf(payloadStr, "%d", StreamConfig.clientRefreshRateX100); + err |= addAttributeString(&optionHead, "x-nv-video[0].clientRefreshRateX100", payloadStr); } if (StreamConfig.audioConfiguration == AUDIO_CONFIGURATION_51_SURROUND) {