Add the ability for clients to reduce bitrate when HEVC is used

This commit is contained in:
Cameron Gutman 2017-09-25 21:38:43 -07:00
parent 1f504288cb
commit d237ceb1df
5 changed files with 17 additions and 2 deletions

View File

@ -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);
}
}

View File

@ -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;
}
}

View File

@ -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);

View File

@ -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);

@ -1 +1 @@
Subproject commit 957b1de1ad2a0beea442aeecd943ff6caa25df30
Subproject commit c0596ad1df9828d5ede020681317494405188821