From 772835689d9ed5d19b2f79911d72d96eb29e29e8 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sat, 3 Feb 2018 22:02:53 -0800 Subject: [PATCH] Plumb clientRefreshRateX100 for modern GFE versions --- .../main/java/com/limelight/nvstream/NvConnection.java | 1 + .../com/limelight/nvstream/StreamConfiguration.java | 10 ++++++++++ .../java/com/limelight/nvstream/jni/MoonBridge.java | 1 + .../src/main/jni/moonlight-core/callbacks.c | 2 ++ .../src/main/jni/moonlight-core/moonlight-common-c | 2 +- 5 files changed, 15 insertions(+), 1 deletion(-) diff --git a/moonlight-common/src/main/java/com/limelight/nvstream/NvConnection.java b/moonlight-common/src/main/java/com/limelight/nvstream/NvConnection.java index 3d96bdb9..392a2c09 100644 --- a/moonlight-common/src/main/java/com/limelight/nvstream/NvConnection.java +++ b/moonlight-common/src/main/java/com/limelight/nvstream/NvConnection.java @@ -271,6 +271,7 @@ public class NvConnection { context.streamConfig.getHevcSupported(), context.negotiatedHdr, context.streamConfig.getHevcBitratePercentageMultiplier(), + context.streamConfig.getClientRefreshRateX100(), context.riKey.getEncoded(), ib.array(), context.videoCapabilities); if (ret != 0) { diff --git a/moonlight-common/src/main/java/com/limelight/nvstream/StreamConfiguration.java b/moonlight-common/src/main/java/com/limelight/nvstream/StreamConfiguration.java index 56cfd93e..8014983f 100644 --- a/moonlight-common/src/main/java/com/limelight/nvstream/StreamConfiguration.java +++ b/moonlight-common/src/main/java/com/limelight/nvstream/StreamConfiguration.java @@ -15,6 +15,7 @@ public class StreamConfiguration { private NvApp app; private int width, height; private int refreshRate; + private int clientRefreshRateX100; private int bitrate; private boolean sops; private boolean enableAdaptiveResolution; @@ -102,6 +103,11 @@ public class StreamConfiguration { } return this; } + + public StreamConfiguration.Builder setClientRefreshRateX100(int refreshRateX100) { + config.clientRefreshRateX100 = refreshRateX100; + return this; + } public StreamConfiguration.Builder setAudioConfiguration(int audioConfig) { if (audioConfig == MoonBridge.AUDIO_CONFIGURATION_STEREO) { @@ -215,4 +221,8 @@ public class StreamConfiguration { public int getAttachedGamepadMask() { return attachedGamepadMask; } + + public int getClientRefreshRateX100() { + return clientRefreshRateX100; + } } diff --git a/moonlight-common/src/main/java/com/limelight/nvstream/jni/MoonBridge.java b/moonlight-common/src/main/java/com/limelight/nvstream/jni/MoonBridge.java index 3d0a37fd..798d0210 100644 --- a/moonlight-common/src/main/java/com/limelight/nvstream/jni/MoonBridge.java +++ b/moonlight-common/src/main/java/com/limelight/nvstream/jni/MoonBridge.java @@ -174,6 +174,7 @@ public class MoonBridge { int audioConfiguration, boolean supportsHevc, boolean enableHdr, int hevcBitratePercentageMultiplier, + int clientRefreshRateX100, byte[] riAesKey, byte[] riAesIv, int videoCapabilities); diff --git a/moonlight-common/src/main/jni/moonlight-core/callbacks.c b/moonlight-common/src/main/jni/moonlight-core/callbacks.c index 81e7f4a1..f1346e6f 100644 --- a/moonlight-common/src/main/jni/moonlight-core/callbacks.c +++ b/moonlight-common/src/main/jni/moonlight-core/callbacks.c @@ -405,6 +405,7 @@ Java_com_limelight_nvstream_jni_MoonBridge_startConnection(JNIEnv *env, jobject jint audioConfiguration, jboolean supportsHevc, jboolean enableHdr, jint hevcBitratePercentageMultiplier, + jint clientRefreshRateX100, jbyteArray riAesKey, jbyteArray riAesIv, jint videoCapabilities) { SERVER_INFORMATION serverInfo = { @@ -423,6 +424,7 @@ Java_com_limelight_nvstream_jni_MoonBridge_startConnection(JNIEnv *env, jobject .supportsHevc = supportsHevc, .enableHdr = enableHdr, .hevcBitratePercentageMultiplier = hevcBitratePercentageMultiplier, + .clientRefreshRateX100 = clientRefreshRateX100 }; jbyte* riAesKeyBuf = (*env)->GetByteArrayElements(env, riAesKey, NULL); diff --git a/moonlight-common/src/main/jni/moonlight-core/moonlight-common-c b/moonlight-common/src/main/jni/moonlight-core/moonlight-common-c index cafc4d81..bf737dc9 160000 --- a/moonlight-common/src/main/jni/moonlight-core/moonlight-common-c +++ b/moonlight-common/src/main/jni/moonlight-core/moonlight-common-c @@ -1 +1 @@ -Subproject commit cafc4d8125e32651656f1ed876dd13f1258566e1 +Subproject commit bf737dc9595dd478a6d9b327b4045ce26517377d