diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json index 33672cf5fe..d8605aa522 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/.bower.json +++ b/dashboard-ui/bower_components/emby-webcomponents/.bower.json @@ -14,12 +14,12 @@ }, "devDependencies": {}, "ignore": [], - "version": "1.4.327", - "_release": "1.4.327", + "version": "1.4.328", + "_release": "1.4.328", "_resolution": { "type": "version", - "tag": "1.4.327", - "commit": "93885cc5aa03632b087a477b0d01612d106ee36f" + "tag": "1.4.328", + "commit": "5e1e99f67a55c923bdff70554642c31c0c6dd1ee" }, "_source": "https://github.com/MediaBrowser/emby-webcomponents.git", "_target": "^1.2.1", diff --git a/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js b/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js index 21f48ea437..a2c62e9bb7 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js +++ b/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js @@ -205,7 +205,7 @@ define(['browser'], function (browser) { function getMaxBitrate() { if (browser.edgeUwp) { - return 30000000; + return 32000000; } // 10mbps @@ -264,14 +264,12 @@ define(['browser'], function (browser) { // Otherwise with HLS and mp3 audio we're seeing some browsers // safari is lying if ((videoTestElement.canPlayType('audio/mp4; codecs="ac-3"').replace(/no/, '') && !browser.safari) || browser.edgeUwp || browser.tizen) { - if ((options.disableVideoAudioCodecs || []).indexOf('ac3') === -1) { - videoAudioCodecs.push('ac3'); + videoAudioCodecs.push('ac3'); - // This works in edge desktop, but not mobile - // TODO: Retest this on mobile - if (!browser.edge || !browser.touch) { - hlsVideoAudioCodecs.push('ac3'); - } + // This works in edge desktop, but not mobile + // TODO: Retest this on mobile + if (!browser.edge || !browser.touch) { + hlsVideoAudioCodecs.push('ac3'); } } @@ -302,6 +300,14 @@ define(['browser'], function (browser) { //videoAudioCodecs.push('truehd'); } + videoAudioCodecs = videoAudioCodecs.filter(function(c) { + return (options.disableVideoAudioCodecs || []).indexOf(c) === -1; + }); + + hlsVideoAudioCodecs = hlsVideoAudioCodecs.filter(function (c) { + return (options.disableHlsVideoAudioCodecs || []).indexOf(c) === -1; + }); + var mp4VideoCodecs = []; if (canPlayH264()) { mp4VideoCodecs.push('h264'); diff --git a/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/cardbuilder.js b/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/cardbuilder.js index 091cebb960..93f8d97a5e 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/cardbuilder.js +++ b/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/cardbuilder.js @@ -1236,7 +1236,7 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'mediaInfo } if (overlayPlayButton && !item.IsPlaceHolder && (item.LocationType !== 'Virtual' || !item.MediaType || item.Type === 'Program') && item.Type !== 'Person' && item.PlayAccess === 'Full') { - overlayButtons += ''; + overlayButtons += ''; } if (options.overlayMoreButton) { diff --git a/dashboard-ui/bower_components/emby-webcomponents/refreshdialog/refreshdialog.js b/dashboard-ui/bower_components/emby-webcomponents/refreshdialog/refreshdialog.js index f295f57310..03b6ab315c 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/refreshdialog/refreshdialog.js +++ b/dashboard-ui/bower_components/emby-webcomponents/refreshdialog/refreshdialog.js @@ -42,7 +42,7 @@ html += '
'; html += '
'; - html += ''; + html += ''; html += '
'; html += ''; diff --git a/dashboard-ui/scripts/librarymenu.js b/dashboard-ui/scripts/librarymenu.js index 6076a151e2..d947a18617 100644 --- a/dashboard-ui/scripts/librarymenu.js +++ b/dashboard-ui/scripts/librarymenu.js @@ -402,7 +402,33 @@ return apiClient.getUserViews({}, userId).then(function (result) { - return result.Items; + var items = result.Items; + + var list = []; + + for (var i = 0, length = items.length; i < length; i++) { + + var view = items[i]; + + list.push(view); + + if (view.CollectionType == 'livetv') { + + view.ImageTags = {}; + view.icon = 'live_tv'; + view.onclick = "LibraryBrowser.showTab('livetv.html', 0);"; + + var guideView = Object.assign({}, view); + guideView.Name = Globalize.translate('ButtonGuide'); + guideView.ImageTags = {}; + guideView.icon = 'dvr'; + guideView.url = 'livetv.html?tab=1'; + guideView.onclick = "LibraryBrowser.showTab('livetv.html', 1);"; + list.push(guideView); + } + } + + return list; }); } diff --git a/dashboard-ui/scripts/mediaplayer.js b/dashboard-ui/scripts/mediaplayer.js index 51e400d671..26bd9faf9d 100644 --- a/dashboard-ui/scripts/mediaplayer.js +++ b/dashboard-ui/scripts/mediaplayer.js @@ -1,4 +1,4 @@ -define(['appSettings', 'userSettings', 'appStorage', 'datetime'], function (appSettings, userSettings, appStorage, datetime) { +define(['appSettings', 'userSettings', 'appStorage', 'datetime', 'browser'], function (appSettings, userSettings, appStorage, datetime, browser) { 'use strict'; function mediaPlayer() { @@ -97,7 +97,7 @@ define(['appSettings', 'userSettings', 'appStorage', 'datetime'], function (appS var intervalTime = ApiClient.isWebSocketOpen() ? 1200 : 5000; // Ease up with safari because it doesn't perform as well - if (browserInfo.safari) { + if (browser.safari) { intervalTime = Math.max(intervalTime, 5000); } self.lastProgressReport = 0; @@ -149,14 +149,20 @@ define(['appSettings', 'userSettings', 'appStorage', 'datetime'], function (appS function getProfileOptions(item) { - var disableVideoAudioCodecs = []; - if (!AppInfo.isNativeApp && !item.RunTimeTicks) { - disableVideoAudioCodecs.push('ac3'); - } - var options = {}; if (!AppInfo.isNativeApp) { + var disableHlsVideoAudioCodecs = []; + + if (!self.canPlayNativeHls()) { + // hls.js does not support this + disableHlsVideoAudioCodecs.push('mp3'); + } + if (!item.RunTimeTicks) { + // hls.js does not support this + disableHlsVideoAudioCodecs.push('ac3'); + } + options.enableMkvProgressive = item.RunTimeTicks != null; if (item.RunTimeTicks == null) { @@ -164,7 +170,7 @@ define(['appSettings', 'userSettings', 'appStorage', 'datetime'], function (appS } options.enableMkvProgressive = false; - options.disableVideoAudioCodecs = disableVideoAudioCodecs; + options.disableHlsVideoAudioCodecs = disableHlsVideoAudioCodecs; } return options; @@ -1493,7 +1499,7 @@ define(['appSettings', 'userSettings', 'appStorage', 'datetime'], function (appS return true; } - if (browserInfo.mobile) { + if (browser.mobile) { return false; } diff --git a/dashboard-ui/thirdparty/paper-button-style.css b/dashboard-ui/thirdparty/paper-button-style.css index 6a9e62f4af..5a38fc379b 100644 --- a/dashboard-ui/thirdparty/paper-button-style.css +++ b/dashboard-ui/thirdparty/paper-button-style.css @@ -68,7 +68,7 @@ button.emby-button.raised.more { } button.emby-button.mini:not(.fab) { - padding: 0.4em 0.7em; + padding: 0.5em 0.7em; } .ui-body-b .paperListLabel, .ui-body-b .fieldDescription, .ui-body-b .selectLabelUnfocused, .ui-body-b .inputLabelUnfocused, .ui-body-b .textareaLabelUnfocused {