Add handling for above 4K resolutions

This commit is contained in:
Cameron Gutman 2020-12-24 13:33:54 -06:00
parent 311bf33e84
commit ecd3427767
2 changed files with 15 additions and 0 deletions

View File

@ -447,6 +447,11 @@ void ClConnectionStatusUpdate(int status)
if (config.enableHdr) {
config.allowHevc = YES;
}
// Streaming at resolutions above 4K requires HEVC
if (config.width > 4096 || config.height > 4096) {
config.allowHevc = YES;
}
// On iOS 11, we can use HEVC if the server supports encoding it
// and this device has hardware decode for it (A9 and later).

View File

@ -65,6 +65,16 @@
return;
}
if (_config.width > 4096 || _config.height > 4096) {
// Pascal added support for 8K HEVC encoding support. Maxwell 2 could encode HEVC but only up to 4K.
// We can't directly identify Pascal, but we can look for HEVC Main10 which was added in the same generation.
NSString* codecSupport = [serverInfoResp getStringTag:@"ServerCodecModeSupport"];
if (codecSupport == nil || !([codecSupport intValue] & 0x200)) {
[_callbacks launchFailed:@"Your host PC's GPU doesn't support streaming video resolutions over 4K."];
return;
}
}
// resumeApp and launchApp handle calling launchFailed
if ([serverState hasSuffix:@"_SERVER_BUSY"]) {
// App already running, resume it