From 2b2b76e91635eee608e49efd73ffd5d492c60ddf Mon Sep 17 00:00:00 2001 From: nyanmisaka Date: Fri, 24 Dec 2021 01:31:12 +0800 Subject: [PATCH] Update HWA settings to adapt the server code changes --- .../dashboard/encodingsettings.html | 84 ++++++++++++------- src/controllers/dashboard/encodingsettings.js | 48 +++++++---- src/strings/en-us.json | 10 ++- src/strings/zh-cn.json | 10 ++- 4 files changed, 101 insertions(+), 51 deletions(-) diff --git a/src/controllers/dashboard/encodingsettings.html b/src/controllers/dashboard/encodingsettings.html index 0030ee70d2..f2a12bf9a2 100644 --- a/src/controllers/dashboard/encodingsettings.html +++ b/src/controllers/dashboard/encodingsettings.html @@ -13,13 +13,12 @@
${LabelHardwareAccelerationTypeHelp} @@ -31,57 +30,53 @@
${LabelVaapiDeviceHelp}
-
- -
${LabelOpenclDeviceHelp}
-
-

${LabelEnableHardwareDecodingFor}

+ +
+
+ +
-
- -
- -
-
-
@@ -91,13 +86,34 @@
+
+ +
+
+

${LabelHardwareEncodingOptions}

+
+ + + +
@@ -177,6 +193,14 @@ + + + + + + + +
${LabelTranscodingThreadCountHelp}
diff --git a/src/controllers/dashboard/encodingsettings.js b/src/controllers/dashboard/encodingsettings.js index 97afb430a0..aeaf28a6be 100644 --- a/src/controllers/dashboard/encodingsettings.js +++ b/src/controllers/dashboard/encodingsettings.js @@ -15,6 +15,9 @@ import alert from '../../components/alert'; page.querySelector('#chkDecodingColorDepth10Hevc').checked = config.EnableDecodingColorDepth10Hevc; page.querySelector('#chkDecodingColorDepth10Vp9').checked = config.EnableDecodingColorDepth10Vp9; page.querySelector('#chkEnhancedNvdecDecoder').checked = config.EnableEnhancedNvdecDecoder; + page.querySelector('#chkSystemNativeHwDecoder').checked = config.PreferSystemNativeHwDecoder; + page.querySelector('#chkIntelLpH264HwEncoder').checked = config.EnableIntelLowPowerH264HwEncoder; + page.querySelector('#chkIntelLpHevcHwEncoder').checked = config.EnableIntelLowPowerHevcHwEncoder; page.querySelector('#chkHardwareEncoding').checked = config.EnableHardwareEncoding; page.querySelector('#chkAllowHevcEncoding').checked = config.AllowHevcEncoding; $('#selectVideoDecoder', page).val(config.HardwareAccelerationType); @@ -28,7 +31,6 @@ import alert from '../../components/alert'; $('#txtVaapiDevice', page).val(config.VaapiDevice || ''); page.querySelector('#chkTonemapping').checked = config.EnableTonemapping; page.querySelector('#chkVppTonemapping').checked = config.EnableVppTonemapping; - page.querySelector('#txtOpenclDevice').value = config.OpenclDevice || ''; page.querySelector('#selectTonemappingAlgorithm').value = config.TonemappingAlgorithm; page.querySelector('#selectTonemappingRange').value = config.TonemappingRange; page.querySelector('#txtTonemappingDesat').value = config.TonemappingDesat; @@ -81,7 +83,6 @@ import alert from '../../components/alert'; config.EncodingThreadCount = $('#selectThreadCount', form).val(); config.HardwareAccelerationType = $('#selectVideoDecoder', form).val(); config.VaapiDevice = $('#txtVaapiDevice', form).val(); - config.OpenclDevice = form.querySelector('#txtOpenclDevice').value; config.EnableTonemapping = form.querySelector('#chkTonemapping').checked; config.EnableVppTonemapping = form.querySelector('#chkVppTonemapping').checked; config.TonemappingAlgorithm = form.querySelector('#selectTonemappingAlgorithm').value; @@ -105,6 +106,9 @@ import alert from '../../components/alert'; config.EnableDecodingColorDepth10Hevc = form.querySelector('#chkDecodingColorDepth10Hevc').checked; config.EnableDecodingColorDepth10Vp9 = form.querySelector('#chkDecodingColorDepth10Vp9').checked; config.EnableEnhancedNvdecDecoder = form.querySelector('#chkEnhancedNvdecDecoder').checked; + config.PreferSystemNativeHwDecoder = form.querySelector('#chkSystemNativeHwDecoder').checked; + config.EnableIntelLowPowerH264HwEncoder = form.querySelector('#chkIntelLpH264HwEncoder').checked; + config.EnableIntelLowPowerHevcHwEncoder = form.querySelector('#chkIntelLpHevcHwEncoder').checked; config.EnableHardwareEncoding = form.querySelector('#chkHardwareEncoding').checked; config.AllowHevcEncoding = form.querySelector('#chkAllowHevcEncoding').checked; ApiClient.updateNamedConfiguration('encoding', config).then(function () { @@ -182,32 +186,42 @@ import alert from '../../components/alert'; page.querySelector('#txtVaapiDevice').removeAttribute('required'); } - if (this.value == 'nvenc' || this.value == 'amf') { - page.querySelector('.fldOpenclDevice').classList.remove('hide'); - page.querySelector('#txtOpenclDevice').setAttribute('required', 'required'); - page.querySelector('.tonemappingOptions').classList.remove('hide'); - } else if (this.value == 'vaapi') { - page.querySelector('.fldOpenclDevice').classList.add('hide'); - page.querySelector('#txtOpenclDevice').removeAttribute('required'); + if (this.value == 'amf' || this.value == 'nvenc' || this.value == 'qsv' || this.value == 'vaapi' || this.value == 'videotoolbox') { + page.querySelector('.fld10bitHevcVp9HwDecoding').classList.remove('hide'); + } else { + page.querySelector('.fld10bitHevcVp9HwDecoding').classList.add('hide'); + } + + if (this.value == 'amf' || this.value == 'nvenc' || this.value == 'qsv' || this.value == 'vaapi') { page.querySelector('.tonemappingOptions').classList.remove('hide'); } else { - page.querySelector('.fldOpenclDevice').classList.add('hide'); - page.querySelector('#txtOpenclDevice').removeAttribute('required'); page.querySelector('.tonemappingOptions').classList.add('hide'); } + if (this.value == 'qsv' || this.value == 'vaapi') { + page.querySelector('.fldIntelLp').classList.remove('hide'); + } else { + page.querySelector('.fldIntelLp').classList.add('hide'); + } + + if (systemInfo.OperatingSystem.toLowerCase() === 'linux' && (this.value == 'qsv' || this.value == 'vaapi')) { + page.querySelector('.fldVppTonemapping').classList.remove('hide'); + } else { + page.querySelector('.fldVppTonemapping').classList.add('hide'); + } + + if (this.value == 'qsv') { + page.querySelector('.fldSysNativeHwDecoder').classList.remove('hide'); + } else { + page.querySelector('.fldSysNativeHwDecoder').classList.add('hide'); + } + if (this.value == 'nvenc') { page.querySelector('.fldEnhancedNvdec').classList.remove('hide'); } else { page.querySelector('.fldEnhancedNvdec').classList.add('hide'); } - if (systemInfo.OperatingSystem.toLowerCase() === 'linux' && (this.value == 'vaapi' || this.value == 'qsv')) { - page.querySelector('.fldVppTonemapping').classList.remove('hide'); - } else { - page.querySelector('.fldVppTonemapping').classList.add('hide'); - } - if (this.value) { page.querySelector('.hardwareAccelerationOptions').classList.remove('hide'); } else { diff --git a/src/strings/en-us.json b/src/strings/en-us.json index 6f60bd2542..9a8f244b2f 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -1458,7 +1458,7 @@ "TitleHardwareAcceleration": "Hardware Acceleration", "TitleHostingSettings": "Hosting Settings", "TitlePlayback": "Playback", - "TonemappingAlgorithmHelp": "Tone mapping can be fine-tuned. If you are not familiar with these options, just keep the default. The recommended value is Hable.", + "TonemappingAlgorithmHelp": "Tone mapping can be fine-tuned. If you are not familiar with these options, just keep the default. The recommended value is BT.2390.", "TonemappingRangeHelp": "Select the output color range. Auto is the same as the input range.", "Track": "Track", "TrackCount": "{0} tracks", @@ -1595,5 +1595,11 @@ "VideoFramerateNotSupported": "The video's framerate is not supported", "VideoLevelNotSupported": "The video codec's level is not supported", "VideoProfileNotSupported": "The video codec's profile is not supported", - "AudioBitDepthNotSupported": "The audio's bit depth is not supported" + "AudioBitDepthNotSupported": "The audio's bit depth is not supported", + "ContainerBitrateExceedsLimit": "The video's bitrate exceeds the limit", + "PreferSystemNativeHwDecoder": "Prefer OS native DXVA or VAAPI hardware decoder", + "EnableIntelLowPowerH264HwEncoder": "Enable Intel Low-Power H264 hardware encoder", + "EnableIntelLowPowerHevcHwEncoder": "Enable Intel Low-Power HEVC hardware encoder", + "IntelLowPowerEncHelp": "Low-Power Encoding can save unnecessary CPU-GPU sync. On Linux they must be disabled if the i915 Huc firmware is not configured.", + "LabelHardwareEncodingOptions": "Hardware encoding options:" } diff --git a/src/strings/zh-cn.json b/src/strings/zh-cn.json index e98e6e8aa5..6e094bcb5b 100644 --- a/src/strings/zh-cn.json +++ b/src/strings/zh-cn.json @@ -1355,7 +1355,7 @@ "EnableTonemapping": "启用色调映射", "AllowTonemappingHelp": "色调映射可以将视频的动态范围从 HDR 变换成 SDR,同时保持图像细节与颜色等对于表现原始场景非常重要的信息。目前仅在转码内嵌 HDR10 或 HLG 元数据的视频时生效。如果播放不顺畅或失败,请考虑关闭对应的硬件解码器。", "LabelTonemappingAlgorithm": "选择要使用的色调映射算法:", - "TonemappingAlgorithmHelp": "色调映射可以微调。如果你不是很熟悉这些选项,保持默认即可。建议值为 Hable。", + "TonemappingAlgorithmHelp": "色调映射可以微调。如果你不是很熟悉这些选项,保持默认即可。建议值为 BT.2390。", "LabelTonemappingRange": "色调映射范围:", "TonemappingRangeHelp": "选择输出颜色范围。选自动则与输入范围相同。", "LabelTonemappingDesat": "色调映射去饱和:", @@ -1599,5 +1599,11 @@ "MediaInfoTitle": "标题", "Larger": "较大的", "Console": "控制台", - "Casual": "休闲" + "Casual": "休闲", + "ContainerBitrateExceedsLimit": "视频比特率超过限制", + "PreferSystemNativeHwDecoder": "首选系统原生的 DXVA 或 VAAPI 硬件解码器", + "EnableIntelLowPowerH264HwEncoder": "启用低电压模式的 Intel H264 硬件编码器", + "EnableIntelLowPowerHevcHwEncoder": "启用低电压模式的 Intel HEVC 硬件编码器", + "IntelLowPowerEncHelp": "低电压模式编码能节省不必要的 CPU-GPU 同步。Linux 中使用前必须配置好 i915 Huc 固件。", + "LabelHardwareEncodingOptions": "硬件编码选项:" }