mirror of
https://github.com/moonlight-stream/moonlight-android.git
synced 2025-07-03 00:06:34 +00:00
Enable audio stream encryption
This commit is contained in:
parent
544eac0c8a
commit
72f37c9df4
@ -473,6 +473,7 @@ public class Game extends Activity implements SurfaceHolder.Callback,
|
|||||||
.setAttachedGamepadMask(gamepadMask)
|
.setAttachedGamepadMask(gamepadMask)
|
||||||
.setClientRefreshRateX100((int)(displayRefreshRate * 100))
|
.setClientRefreshRateX100((int)(displayRefreshRate * 100))
|
||||||
.setAudioConfiguration(prefConfig.audioConfiguration)
|
.setAudioConfiguration(prefConfig.audioConfiguration)
|
||||||
|
.setAudioEncryption(true)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// Initialize the connection
|
// Initialize the connection
|
||||||
|
@ -284,6 +284,7 @@ public class NvConnection {
|
|||||||
context.negotiatedHdr,
|
context.negotiatedHdr,
|
||||||
context.streamConfig.getHevcBitratePercentageMultiplier(),
|
context.streamConfig.getHevcBitratePercentageMultiplier(),
|
||||||
context.streamConfig.getClientRefreshRateX100(),
|
context.streamConfig.getClientRefreshRateX100(),
|
||||||
|
context.streamConfig.getEncryptionFlags(),
|
||||||
context.riKey.getEncoded(), ib.array(),
|
context.riKey.getEncoded(), ib.array(),
|
||||||
context.videoCapabilities);
|
context.videoCapabilities);
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
|
@ -26,6 +26,7 @@ public class StreamConfiguration {
|
|||||||
private int hevcBitratePercentageMultiplier;
|
private int hevcBitratePercentageMultiplier;
|
||||||
private boolean enableHdr;
|
private boolean enableHdr;
|
||||||
private int attachedGamepadMask;
|
private int attachedGamepadMask;
|
||||||
|
private int encryptionFlags;
|
||||||
|
|
||||||
public static class Builder {
|
public static class Builder {
|
||||||
private StreamConfiguration config = new StreamConfiguration();
|
private StreamConfiguration config = new StreamConfiguration();
|
||||||
@ -110,7 +111,17 @@ public class StreamConfiguration {
|
|||||||
config.clientRefreshRateX100 = refreshRateX100;
|
config.clientRefreshRateX100 = refreshRateX100;
|
||||||
return this;
|
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) {
|
public StreamConfiguration.Builder setAudioConfiguration(MoonBridge.AudioConfiguration audioConfig) {
|
||||||
config.audioConfiguration = audioConfig;
|
config.audioConfiguration = audioConfig;
|
||||||
return this;
|
return this;
|
||||||
@ -211,4 +222,8 @@ public class StreamConfiguration {
|
|||||||
public int getClientRefreshRateX100() {
|
public int getClientRefreshRateX100() {
|
||||||
return clientRefreshRateX100;
|
return clientRefreshRateX100;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getEncryptionFlags() {
|
||||||
|
return encryptionFlags;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,10 @@ public class MoonBridge {
|
|||||||
public static final int VIDEO_FORMAT_MASK_H264 = 0x00FF;
|
public static final int VIDEO_FORMAT_MASK_H264 = 0x00FF;
|
||||||
public static final int VIDEO_FORMAT_MASK_H265 = 0xFF00;
|
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_PICDATA = 0;
|
||||||
public static final int BUFFER_TYPE_SPS = 1;
|
public static final int BUFFER_TYPE_SPS = 1;
|
||||||
public static final int BUFFER_TYPE_PPS = 2;
|
public static final int BUFFER_TYPE_PPS = 2;
|
||||||
@ -255,6 +259,7 @@ public class MoonBridge {
|
|||||||
boolean enableHdr,
|
boolean enableHdr,
|
||||||
int hevcBitratePercentageMultiplier,
|
int hevcBitratePercentageMultiplier,
|
||||||
int clientRefreshRateX100,
|
int clientRefreshRateX100,
|
||||||
|
int encryptionFlags,
|
||||||
byte[] riAesKey, byte[] riAesIv,
|
byte[] riAesKey, byte[] riAesIv,
|
||||||
int videoCapabilities);
|
int videoCapabilities);
|
||||||
|
|
||||||
|
@ -370,6 +370,7 @@ Java_com_limelight_nvstream_jni_MoonBridge_startConnection(JNIEnv *env, jclass c
|
|||||||
jboolean enableHdr,
|
jboolean enableHdr,
|
||||||
jint hevcBitratePercentageMultiplier,
|
jint hevcBitratePercentageMultiplier,
|
||||||
jint clientRefreshRateX100,
|
jint clientRefreshRateX100,
|
||||||
|
jint encryptionFlags,
|
||||||
jbyteArray riAesKey, jbyteArray riAesIv,
|
jbyteArray riAesKey, jbyteArray riAesIv,
|
||||||
jint videoCapabilities) {
|
jint videoCapabilities) {
|
||||||
SERVER_INFORMATION serverInfo = {
|
SERVER_INFORMATION serverInfo = {
|
||||||
@ -388,7 +389,8 @@ Java_com_limelight_nvstream_jni_MoonBridge_startConnection(JNIEnv *env, jclass c
|
|||||||
.supportsHevc = supportsHevc,
|
.supportsHevc = supportsHevc,
|
||||||
.enableHdr = enableHdr,
|
.enableHdr = enableHdr,
|
||||||
.hevcBitratePercentageMultiplier = hevcBitratePercentageMultiplier,
|
.hevcBitratePercentageMultiplier = hevcBitratePercentageMultiplier,
|
||||||
.clientRefreshRateX100 = clientRefreshRateX100
|
.clientRefreshRateX100 = clientRefreshRateX100,
|
||||||
|
.encryptionFlags = encryptionFlags,
|
||||||
};
|
};
|
||||||
|
|
||||||
jbyte* riAesKeyBuf = (*env)->GetByteArrayElements(env, riAesKey, NULL);
|
jbyte* riAesKeyBuf = (*env)->GetByteArrayElements(env, riAesKey, NULL);
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit 221af8295064b24222dee7a42fff179e89ec9a0f
|
Subproject commit 13041e0323685ff1b2ccade347cb1de850286d23
|
Loading…
x
Reference in New Issue
Block a user