diff --git a/dashboard-ui/components/viewcontainer-lite.js b/dashboard-ui/components/viewcontainer-lite.js index 1d5d81c649..bfa14eb077 100644 --- a/dashboard-ui/components/viewcontainer-lite.js +++ b/dashboard-ui/components/viewcontainer-lite.js @@ -56,6 +56,7 @@ define(['browser'], function (browser) { dependencies.push('jqmlistview'); dependencies.push('scripts/notifications'); dependencies.push('dashboardcss'); + dependencies.push('emby-icons'); } return new Promise(function (resolve, reject) { diff --git a/dashboard-ui/encodingsettings.html b/dashboard-ui/encodingsettings.html index 529acc1600..757628571f 100644 --- a/dashboard-ui/encodingsettings.html +++ b/dashboard-ui/encodingsettings.html @@ -34,17 +34,29 @@
${OptionEnableTranscodingThrottleHelp}
+
+
+
+ +
+ +
+
+
${LabelffmpegPathHelp}
+
${LabelffmpegPathHelp2}
+
+
- +
${LabelTranscodingTempPathHelp}
- +
${LabelDownMixAudioScaleHelp}
diff --git a/dashboard-ui/scripts/encodingsettings.js b/dashboard-ui/scripts/encodingsettings.js index b62c0eea2c..cd716098bf 100644 --- a/dashboard-ui/scripts/encodingsettings.js +++ b/dashboard-ui/scripts/encodingsettings.js @@ -7,6 +7,7 @@ $('#selectVideoDecoder', page).val(config.HardwareAccelerationType); $('#selectThreadCount', page).val(config.EncodingThreadCount); $('#txtDownMixAudioBoost', page).val(config.DownMixAudioBoost); + $('.txtEncoderPath', page).val(config.EncoderAppPath || ''); $('#txtTranscodingTempPath', page).val(config.TranscodingTempPath || ''); Dashboard.hideLoadingMsg(); @@ -16,13 +17,14 @@ var form = this; - var onDecoderConfirmed = function() { + var onDecoderConfirmed = function () { Dashboard.showLoadingMsg(); ApiClient.getNamedConfiguration("encoding").then(function (config) { config.DownMixAudioBoost = $('#txtDownMixAudioBoost', form).val(); config.TranscodingTempPath = $('#txtTranscodingTempPath', form).val(); + config.EncoderAppPath = $('.txtEncoderPath', form).val(); config.EncodingThreadCount = $('#selectThreadCount', form).val(); config.HardwareAccelerationType = $('#selectVideoDecoder', form).val(); @@ -74,6 +76,27 @@ var page = this; + $('#btnSelectEncoderPath', page).on("click.selectDirectory", function () { + + require(['directorybrowser'], function (directoryBrowser) { + + var picker = new directoryBrowser({ + includeFiles: true + }); + + picker.show({ + + callback: function (path) { + + if (path) { + $('.txtEncoderPath', page).val(path); + } + picker.close(); + } + }); + }); + }); + $('#btnSelectTranscodingTempPath', page).on("click.selectDirectory", function () { require(['directorybrowser'], function (directoryBrowser) { @@ -104,13 +127,21 @@ Dashboard.showLoadingMsg(); - LibraryMenu.setTabs('playback',3, getTabs); + LibraryMenu.setTabs('playback', 3, getTabs); var page = this; ApiClient.getNamedConfiguration("encoding").then(function (config) { loadPage(page, config); + }); + ApiClient.getSystemInfo().then(function (systemInfo) { + + if (systemInfo.HasExternalEncoder) { + page.querySelector('.fldEncoderPath').classList.add('hide'); + } else { + page.querySelector('.fldEncoderPath').classList.remove('hide'); + } }); }); diff --git a/dashboard-ui/strings/en-US.json b/dashboard-ui/strings/en-US.json index 20b7d20997..14c12ac940 100644 --- a/dashboard-ui/strings/en-US.json +++ b/dashboard-ui/strings/en-US.json @@ -2372,5 +2372,8 @@ "LabelBindToLocalNetworkAddressHelp": "Optional. Override the local IP address to bind the http server to. If left empty, the server will bind to all availabile addresses. Changing this value requires restarting Emby Server.", "TitleHostingSettings": "Hosting Settings", "SettingsWarning": "Changing these values may cause instability or connectivity failures. If you experience any problems, we recommend changing them back to default.", - "MapChannels": "Map Channels" + "MapChannels": "Map Channels", + "LabelffmpegPath": "FFMpeg path:", + "LabelffmpegPathHelp": "The path to your ffmpeg application, or folder containing ffmpeg.", + "LabelffmpegPathHelp2": "Important: FFProbe must exist within the same folder." }