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 afde02e1..00deaf11 100644 --- a/moonlight-common/src/main/java/com/limelight/nvstream/NvConnection.java +++ b/moonlight-common/src/main/java/com/limelight/nvstream/NvConnection.java @@ -247,7 +247,9 @@ public class NvConnection { context.negotiatedFps, context.streamConfig.getBitrate(), context.streamConfig.getMaxPacketSize(), context.streamConfig.getRemote(), context.streamConfig.getAudioConfiguration(), - context.streamConfig.getHevcSupported(), context.riKey.getEncoded(), ib.array(), + context.streamConfig.getHevcSupported(), + context.streamConfig.getHevcBitratePercentageMultiplier(), + context.riKey.getEncoded(), ib.array(), context.videoCapabilities); } } 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 4f182ff5..1d3ad687 100644 --- a/moonlight-common/src/main/java/com/limelight/nvstream/StreamConfiguration.java +++ b/moonlight-common/src/main/java/com/limelight/nvstream/StreamConfiguration.java @@ -25,6 +25,7 @@ public class StreamConfiguration { private int audioChannelCount; private int audioConfiguration; private boolean supportsHevc; + private int hevcBitratePercentageMultiplier; public static class Builder { private StreamConfiguration config = new StreamConfiguration(); @@ -74,6 +75,11 @@ public class StreamConfiguration { config.maxPacketSize = maxPacketSize; return this; } + + public StreamConfiguration.Builder setHevcBitratePercentageMultiplier(int multiplier) { + config.hevcBitratePercentageMultiplier = multiplier; + return this; + } public StreamConfiguration.Builder setAudioConfiguration(int audioConfig) { if (audioConfig == MoonBridge.AUDIO_CONFIGURATION_STEREO) { @@ -173,4 +179,8 @@ public class StreamConfiguration { public boolean getHevcSupported() { return supportsHevc; } + + public int getHevcBitratePercentageMultiplier() { + return hevcBitratePercentageMultiplier; + } } 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 526b3379..522c3916 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 @@ -160,6 +160,7 @@ public class MoonBridge { int width, int height, int fps, int bitrate, int packetSize, boolean streamingRemotely, int audioConfiguration, boolean supportsHevc, + int hevcBitratePercentageMultiplier, 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 a1e569da..5ce77e5e 100644 --- a/moonlight-common/src/main/jni/moonlight-core/callbacks.c +++ b/moonlight-common/src/main/jni/moonlight-core/callbacks.c @@ -382,6 +382,7 @@ Java_com_limelight_nvstream_jni_MoonBridge_startConnection(JNIEnv *env, jobject jint width, jint height, jint fps, jint bitrate, jint packetSize, jboolean streamingRemotely, jint audioConfiguration, jboolean supportsHevc, + jint hevcBitratePercentageMultiplier, jbyteArray riAesKey, jbyteArray riAesIv, jint videoCapabilities) { SERVER_INFORMATION serverInfo = { @@ -398,6 +399,7 @@ Java_com_limelight_nvstream_jni_MoonBridge_startConnection(JNIEnv *env, jobject .streamingRemotely = streamingRemotely, .audioConfiguration = audioConfiguration, .supportsHevc = supportsHevc, + .hevcBitratePercentageMultiplier = hevcBitratePercentageMultiplier, }; 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 957b1de1..c0596ad1 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 957b1de1ad2a0beea442aeecd943ff6caa25df30 +Subproject commit c0596ad1df9828d5ede020681317494405188821