Skip to content

Commit

Permalink
Merge pull request jellyfin#2350 from nyanmisaka/nvdec-vpp
Browse files Browse the repository at this point in the history
  • Loading branch information
joshuaboniface committed Feb 10, 2021
2 parents 3b37605 + 200741a commit f7f0d68
Show file tree
Hide file tree
Showing 5 changed files with 55 additions and 9 deletions.
13 changes: 6 additions & 7 deletions src/components/playerstats/playerstats.js
Original file line number Diff line number Diff line change
Expand Up @@ -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'),
Expand Down
14 changes: 14 additions & 0 deletions src/controllers/dashboard/encodingsettings.html
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,13 @@ <h3 class="checkboxListLabel">${LabelEnableHardwareDecodingFor}</h3>
</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>
Expand All @@ -103,6 +110,13 @@ <h3 class="checkboxListLabel">${LabelEnableHardwareDecodingFor}</h3>
</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>
Expand Down
27 changes: 27 additions & 0 deletions src/controllers/dashboard/encodingsettings.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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;
Expand Down Expand Up @@ -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;
Expand All @@ -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 () {
Expand Down Expand Up @@ -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');
Expand All @@ -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 {
Expand Down
5 changes: 4 additions & 1 deletion src/strings/en-us.json
Original file line number Diff line number Diff line change
Expand Up @@ -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."
}
5 changes: 4 additions & 1 deletion src/strings/zh-cn.json
Original file line number Diff line number Diff line change
Expand Up @@ -1501,5 +1501,8 @@
"LabelMinAudiobookResume": "恢复播放有声读物的最短时间:",
"LabelMaxAudiobookResume": "恢复播放有声读物的最长时间:",
"MessagePlaybackError": "在您的 Google Cast 接收器上播放此文件时发生错误。",
"MessageChromecastConnectionError": "您的 Google Cast 接收器无法联系 Jellyfin 服务器。请检查连接,然后重试。"
"MessageChromecastConnectionError": "您的 Google Cast 接收器无法联系 Jellyfin 服务器。请检查连接,然后重试。",
"EnableEnhancedNvdecDecoder": "启用增强的 NVDEC 解码器",
"EnableVppTonemapping": "启用 VPP 色调映射",
"AllowVppTonemappingHelp": "完全基于硬件的色调映射,不需要 OpenCL 滤镜。目前仅在转码内嵌 HDR10 元数据的视频时生效。"
}

0 comments on commit f7f0d68

Please sign in to comment.