mirror of
https://github.com/moonlight-stream/moonlight-android.git
synced 2025-07-19 19:13:03 +00:00
Add the ability for clients to reduce bitrate when HEVC is used
This commit is contained in:
parent
1f504288cb
commit
d237ceb1df
@ -247,7 +247,9 @@ public class NvConnection {
|
|||||||
context.negotiatedFps, context.streamConfig.getBitrate(),
|
context.negotiatedFps, context.streamConfig.getBitrate(),
|
||||||
context.streamConfig.getMaxPacketSize(),
|
context.streamConfig.getMaxPacketSize(),
|
||||||
context.streamConfig.getRemote(), context.streamConfig.getAudioConfiguration(),
|
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);
|
context.videoCapabilities);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,7 @@ public class StreamConfiguration {
|
|||||||
private int audioChannelCount;
|
private int audioChannelCount;
|
||||||
private int audioConfiguration;
|
private int audioConfiguration;
|
||||||
private boolean supportsHevc;
|
private boolean supportsHevc;
|
||||||
|
private int hevcBitratePercentageMultiplier;
|
||||||
|
|
||||||
public static class Builder {
|
public static class Builder {
|
||||||
private StreamConfiguration config = new StreamConfiguration();
|
private StreamConfiguration config = new StreamConfiguration();
|
||||||
@ -75,6 +76,11 @@ public class StreamConfiguration {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public StreamConfiguration.Builder setHevcBitratePercentageMultiplier(int multiplier) {
|
||||||
|
config.hevcBitratePercentageMultiplier = multiplier;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public StreamConfiguration.Builder setAudioConfiguration(int audioConfig) {
|
public StreamConfiguration.Builder setAudioConfiguration(int audioConfig) {
|
||||||
if (audioConfig == MoonBridge.AUDIO_CONFIGURATION_STEREO) {
|
if (audioConfig == MoonBridge.AUDIO_CONFIGURATION_STEREO) {
|
||||||
config.audioChannelCount = CHANNEL_COUNT_STEREO;
|
config.audioChannelCount = CHANNEL_COUNT_STEREO;
|
||||||
@ -173,4 +179,8 @@ public class StreamConfiguration {
|
|||||||
public boolean getHevcSupported() {
|
public boolean getHevcSupported() {
|
||||||
return supportsHevc;
|
return supportsHevc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getHevcBitratePercentageMultiplier() {
|
||||||
|
return hevcBitratePercentageMultiplier;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -160,6 +160,7 @@ public class MoonBridge {
|
|||||||
int width, int height, int fps,
|
int width, int height, int fps,
|
||||||
int bitrate, int packetSize, boolean streamingRemotely,
|
int bitrate, int packetSize, boolean streamingRemotely,
|
||||||
int audioConfiguration, boolean supportsHevc,
|
int audioConfiguration, boolean supportsHevc,
|
||||||
|
int hevcBitratePercentageMultiplier,
|
||||||
byte[] riAesKey, byte[] riAesIv,
|
byte[] riAesKey, byte[] riAesIv,
|
||||||
int videoCapabilities);
|
int videoCapabilities);
|
||||||
|
|
||||||
|
@ -382,6 +382,7 @@ Java_com_limelight_nvstream_jni_MoonBridge_startConnection(JNIEnv *env, jobject
|
|||||||
jint width, jint height, jint fps,
|
jint width, jint height, jint fps,
|
||||||
jint bitrate, jint packetSize, jboolean streamingRemotely,
|
jint bitrate, jint packetSize, jboolean streamingRemotely,
|
||||||
jint audioConfiguration, jboolean supportsHevc,
|
jint audioConfiguration, jboolean supportsHevc,
|
||||||
|
jint hevcBitratePercentageMultiplier,
|
||||||
jbyteArray riAesKey, jbyteArray riAesIv,
|
jbyteArray riAesKey, jbyteArray riAesIv,
|
||||||
jint videoCapabilities) {
|
jint videoCapabilities) {
|
||||||
SERVER_INFORMATION serverInfo = {
|
SERVER_INFORMATION serverInfo = {
|
||||||
@ -398,6 +399,7 @@ Java_com_limelight_nvstream_jni_MoonBridge_startConnection(JNIEnv *env, jobject
|
|||||||
.streamingRemotely = streamingRemotely,
|
.streamingRemotely = streamingRemotely,
|
||||||
.audioConfiguration = audioConfiguration,
|
.audioConfiguration = audioConfiguration,
|
||||||
.supportsHevc = supportsHevc,
|
.supportsHevc = supportsHevc,
|
||||||
|
.hevcBitratePercentageMultiplier = hevcBitratePercentageMultiplier,
|
||||||
};
|
};
|
||||||
|
|
||||||
jbyte* riAesKeyBuf = (*env)->GetByteArrayElements(env, riAesKey, NULL);
|
jbyte* riAesKeyBuf = (*env)->GetByteArrayElements(env, riAesKey, NULL);
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit 957b1de1ad2a0beea442aeecd943ff6caa25df30
|
Subproject commit c0596ad1df9828d5ede020681317494405188821
|
Loading…
x
Reference in New Issue
Block a user