1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

Merge pull request #2350 from nyanmisaka/nvdec-vpp

This commit is contained in:
Joshua M. Boniface 2021-02-10 09:42:25 -05:00 committed by GitHub
commit f7f0d688e8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 55 additions and 9 deletions

View file

@ -142,14 +142,13 @@ import ServerConnections from '../ServerConnections';
});
}
if (audioChannels) {
sessionStats.push({
label: globalize.translate('LabelAudioChannels'),
value: audioChannels
});
}
if (displayPlayMethod === 'Transcode') {
if (audioChannels) {
sessionStats.push({
label: globalize.translate('LabelAudioChannels'),
value: audioChannels
});
}
if (totalBitrate) {
sessionStats.push({
label: globalize.translate('LabelBitrate'),

View file

@ -84,6 +84,13 @@
</label>
</div>
<div class="checkboxListContainer hide fldEnhancedNvdec">
<label>
<input type="checkbox" is="emby-checkbox" id="chkEnhancedNvdecDecoder" />
<span>${EnableEnhancedNvdecDecoder}</span>
</label>
</div>
<div class="checkboxListContainer">
<div class="checkboxList">
<label>
@ -103,6 +110,13 @@
</div>
</div>
<div class="checkboxListContainer checkboxContainer-withDescription fldVppTonemapping hide">
<label>
<input type="checkbox" is="emby-checkbox" id="chkVppTonemapping" />
<span>${EnableVppTonemapping}</span>
</label>
<div class="fieldDescription checkboxFieldDescription">${AllowVppTonemappingHelp}</div>
</div>
<div class="tonemappingOptions hide">
<div class="checkboxListContainer checkboxContainer-withDescription">
<label>

View file

@ -14,6 +14,7 @@ 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('#chkHardwareEncoding').checked = config.EnableHardwareEncoding;
page.querySelector('#chkAllowHevcEncoding').checked = config.AllowHevcEncoding;
$('#selectVideoDecoder', page).val(config.HardwareAccelerationType);
@ -26,6 +27,7 @@ import alert from '../../components/alert';
page.querySelector('#chkEnableFallbackFont').checked = config.EnableFallbackFont;
$('#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;
@ -81,6 +83,7 @@ import alert from '../../components/alert';
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;
config.TonemappingRange = form.querySelector('#selectTonemappingRange').value;
config.TonemappingDesat = form.querySelector('#txtTonemappingDesat').value;
@ -101,6 +104,7 @@ import alert from '../../components/alert';
});
config.EnableDecodingColorDepth10Hevc = form.querySelector('#chkDecodingColorDepth10Hevc').checked;
config.EnableDecodingColorDepth10Vp9 = form.querySelector('#chkDecodingColorDepth10Vp9').checked;
config.EnableEnhancedNvdecDecoder = form.querySelector('#chkEnhancedNvdecDecoder').checked;
config.EnableHardwareEncoding = form.querySelector('#chkHardwareEncoding').checked;
config.AllowHevcEncoding = form.querySelector('#chkAllowHevcEncoding').checked;
ApiClient.updateNamedConfiguration('encoding', config).then(function () {
@ -156,8 +160,19 @@ import alert from '../../components/alert';
}];
}
let systemInfo;
function getSystemInfo() {
return systemInfo ? Promise.resolve(systemInfo) : ApiClient.getPublicSystemInfo().then(
info => {
systemInfo = info;
return info;
}
);
}
$(document).on('pageinit', '#encodingSettingsPage', function () {
const page = this;
getSystemInfo();
page.querySelector('#selectVideoDecoder').addEventListener('change', function () {
if (this.value == 'vaapi') {
page.querySelector('.fldVaapiDevice').classList.remove('hide');
@ -181,6 +196,18 @@ import alert from '../../components/alert';
page.querySelector('.tonemappingOptions').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 {

View file

@ -1497,5 +1497,8 @@
"YoutubeNotFound": "Video not found.",
"YoutubeDenied": "Requested video is not allowed to be played in embedded players.",
"MessageChromecastConnectionError": "Your Google Cast receiver is unable to contact the Jellyfin server. Please check the connection and try again.",
"MessagePlaybackError": "There was an error playing this file on your Google Cast receiver."
"MessagePlaybackError": "There was an error playing this file on your Google Cast receiver.",
"EnableEnhancedNvdecDecoder": "Enable enhanced NVDEC decoder",
"EnableVppTonemapping": "Enable VPP Tone mapping",
"AllowVppTonemappingHelp": "Full hardware based tone mapping without using OpenCL filter. Currently works only when transcoding videos with embedded HDR10 metadata."
}

View file

@ -1501,5 +1501,8 @@
"LabelMinAudiobookResume": "恢复播放有声读物的最短时间:",
"LabelMaxAudiobookResume": "恢复播放有声读物的最长时间:",
"MessagePlaybackError": "在您的 Google Cast 接收器上播放此文件时发生错误。",
"MessageChromecastConnectionError": "您的 Google Cast 接收器无法联系 Jellyfin 服务器。请检查连接,然后重试。"
"MessageChromecastConnectionError": "您的 Google Cast 接收器无法联系 Jellyfin 服务器。请检查连接,然后重试。",
"EnableEnhancedNvdecDecoder": "启用增强的 NVDEC 解码器",
"EnableVppTonemapping": "启用 VPP 色调映射",
"AllowVppTonemappingHelp": "完全基于硬件的色调映射,不需要 OpenCL 滤镜。目前仅在转码内嵌 HDR10 元数据的视频时生效。"
}