Enable audio stream encryption

This commit is contained in:
Cameron Gutman 2021-04-23 19:38:24 -05:00
parent 544eac0c8a
commit 72f37c9df4
6 changed files with 27 additions and 3 deletions

View File

@ -473,6 +473,7 @@ public class Game extends Activity implements SurfaceHolder.Callback,
.setAttachedGamepadMask(gamepadMask)
.setClientRefreshRateX100((int)(displayRefreshRate * 100))
.setAudioConfiguration(prefConfig.audioConfiguration)
.setAudioEncryption(true)
.build();
// Initialize the connection

View File

@ -284,6 +284,7 @@ public class NvConnection {
context.negotiatedHdr,
context.streamConfig.getHevcBitratePercentageMultiplier(),
context.streamConfig.getClientRefreshRateX100(),
context.streamConfig.getEncryptionFlags(),
context.riKey.getEncoded(), ib.array(),
context.videoCapabilities);
if (ret != 0) {

View File

@ -26,6 +26,7 @@ public class StreamConfiguration {
private int hevcBitratePercentageMultiplier;
private boolean enableHdr;
private int attachedGamepadMask;
private int encryptionFlags;
public static class Builder {
private StreamConfiguration config = new StreamConfiguration();
@ -111,6 +112,16 @@ public class StreamConfiguration {
return this;
}
public StreamConfiguration.Builder setAudioEncryption(boolean enable) {
if (enable) {
config.encryptionFlags |= MoonBridge.ENCFLG_AUDIO;
}
else {
config.encryptionFlags &= ~MoonBridge.ENCFLG_AUDIO;
}
return this;
}
public StreamConfiguration.Builder setAudioConfiguration(MoonBridge.AudioConfiguration audioConfig) {
config.audioConfiguration = audioConfig;
return this;
@ -211,4 +222,8 @@ public class StreamConfiguration {
public int getClientRefreshRateX100() {
return clientRefreshRateX100;
}
public int getEncryptionFlags() {
return encryptionFlags;
}
}

View File

@ -18,6 +18,10 @@ public class MoonBridge {
public static final int VIDEO_FORMAT_MASK_H264 = 0x00FF;
public static final int VIDEO_FORMAT_MASK_H265 = 0xFF00;
public static final int ENCFLG_NONE = 0;
public static final int ENCFLG_AUDIO = 1;
public static final int ENCFLG_ALL = 0xFFFFFFFF;
public static final int BUFFER_TYPE_PICDATA = 0;
public static final int BUFFER_TYPE_SPS = 1;
public static final int BUFFER_TYPE_PPS = 2;
@ -255,6 +259,7 @@ public class MoonBridge {
boolean enableHdr,
int hevcBitratePercentageMultiplier,
int clientRefreshRateX100,
int encryptionFlags,
byte[] riAesKey, byte[] riAesIv,
int videoCapabilities);

View File

@ -370,6 +370,7 @@ Java_com_limelight_nvstream_jni_MoonBridge_startConnection(JNIEnv *env, jclass c
jboolean enableHdr,
jint hevcBitratePercentageMultiplier,
jint clientRefreshRateX100,
jint encryptionFlags,
jbyteArray riAesKey, jbyteArray riAesIv,
jint videoCapabilities) {
SERVER_INFORMATION serverInfo = {
@ -388,7 +389,8 @@ Java_com_limelight_nvstream_jni_MoonBridge_startConnection(JNIEnv *env, jclass c
.supportsHevc = supportsHevc,
.enableHdr = enableHdr,
.hevcBitratePercentageMultiplier = hevcBitratePercentageMultiplier,
.clientRefreshRateX100 = clientRefreshRateX100
.clientRefreshRateX100 = clientRefreshRateX100,
.encryptionFlags = encryptionFlags,
};
jbyte* riAesKeyBuf = (*env)->GetByteArrayElements(env, riAesKey, NULL);

@ -1 +1 @@
Subproject commit 221af8295064b24222dee7a42fff179e89ec9a0f
Subproject commit 13041e0323685ff1b2ccade347cb1de850286d23