Update to new HDR support option in moonlight-common-c

This commit is contained in:
Cameron Gutman
2023-07-02 23:47:47 -05:00
parent 458460515d
commit f1bcc217a9
7 changed files with 14 additions and 22 deletions

View File

@@ -19,6 +19,7 @@ public class ConnectionContext {
// This is the version quad from the appversion tag of /serverinfo
public String serverAppVersion;
public String serverGfeVersion;
public int serverCodecModeSupport;
// This is the sessionUrl0 tag from /resume and /launch
public String rtspSessionUrl;

View File

@@ -242,9 +242,11 @@ public class NvConnection {
return false;
}
context.negotiatedHdr = context.streamConfig.getEnableHdr();
if ((h.getServerCodecModeSupport(serverInfo) & 0x200) == 0 && context.negotiatedHdr) {
context.connListener.displayTransientMessage("Your GPU does not support streaming HDR. The stream will be SDR.");
context.serverCodecModeSupport = (int)h.getServerCodecModeSupport(serverInfo);
context.negotiatedHdr = (context.streamConfig.getSupportedVideoFormats() & MoonBridge.VIDEO_FORMAT_MASK_10BIT) != 0;
if ((context.serverCodecModeSupport & 0x20200) == 0 && context.negotiatedHdr) {
context.connListener.displayTransientMessage("Your PC GPU does not support streaming HDR. The stream will be SDR.");
context.negotiatedHdr = false;
}
@@ -254,7 +256,7 @@ public class NvConnection {
// Check for a supported stream resolution
if ((context.streamConfig.getWidth() > 4096 || context.streamConfig.getHeight() > 4096) &&
(h.getServerCodecModeSupport(serverInfo) & 0x200) == 0) {
(h.getServerCodecModeSupport(serverInfo) & 0x200) == 0 && context.isNvidiaServerSoftware) {
context.connListener.displayMessage("Your host PC does not support streaming at resolutions above 4K.");
return false;
}
@@ -430,7 +432,7 @@ public class NvConnection {
context.negotiatedPacketSize, context.negotiatedRemoteStreaming,
context.streamConfig.getAudioConfiguration().toInt(),
context.streamConfig.getSupportedVideoFormats(),
context.negotiatedHdr,
context.serverCodecModeSupport,
context.streamConfig.getHevcBitratePercentageMultiplier(),
context.streamConfig.getAv1BitratePercentageMultiplier(),
context.streamConfig.getClientRefreshRateX100(),

View File

@@ -25,7 +25,6 @@ public class StreamConfiguration {
private int supportedVideoFormats;
private int hevcBitratePercentageMultiplier;
private int av1BitratePercentageMultiplier;
private boolean enableHdr;
private int attachedGamepadMask;
private int encryptionFlags;
private int colorRange;
@@ -96,11 +95,6 @@ public class StreamConfiguration {
return this;
}
public StreamConfiguration.Builder setEnableHdr(boolean enableHdr) {
config.enableHdr = enableHdr;
return this;
}
public StreamConfiguration.Builder setAttachedGamepadMask(int attachedGamepadMask) {
config.attachedGamepadMask = attachedGamepadMask;
return this;
@@ -238,10 +232,6 @@ public class StreamConfiguration {
return av1BitratePercentageMultiplier;
}
public boolean getEnableHdr() {
return enableHdr;
}
public int getAttachedGamepadMask() {
return attachedGamepadMask;
}

View File

@@ -346,7 +346,7 @@ public class MoonBridge {
int width, int height, int fps,
int bitrate, int packetSize, int streamingRemotely,
int audioConfiguration, int supportedVideoFormats,
boolean enableHdr,
int serverCodecModeSupport,
int hevcBitratePercentageMultiplier,
int av1BitratePercentageMultiplier,
int clientRefreshRateX100,