diff --git a/dashboard-ui/css/livetv.css b/dashboard-ui/css/livetv.css index 561de50dd..3b73648b9 100644 --- a/dashboard-ui/css/livetv.css +++ b/dashboard-ui/css/livetv.css @@ -273,55 +273,55 @@ } .channelList, .programGrid { - height: 200px; + height: 220px; } @media (min-height: 500px) { .channelList, .programGrid { - height: 250px; + height: 290px; } } @media (min-height: 600px) { .channelList, .programGrid { - height: 350px; + height: 390px; } } @media (min-height: 700px) { .channelList, .programGrid { - height: 450px; + height: 490px; } } @media (min-height: 800px) { .channelList, .programGrid { - height: 550px; + height: 590px; } } @media (min-height: 900px) { .channelList, .programGrid { - height: 650px; + height: 690px; } } @media (min-height: 1000px) { .channelList, .programGrid { - height: 750px; + height: 790px; } } @media (min-height: 1100px) { .channelList, .programGrid { - height: 850px; + height: 890px; } } diff --git a/dashboard-ui/library.html b/dashboard-ui/library.html index 3eac1b502..47258a1e0 100644 --- a/dashboard-ui/library.html +++ b/dashboard-ui/library.html @@ -11,7 +11,7 @@
Media Folders Path Mapping - Other Settings + Advanced

diff --git a/dashboard-ui/librarypathmapping.html b/dashboard-ui/librarypathmapping.html index f48d33e30..0fd82729a 100644 --- a/dashboard-ui/librarypathmapping.html +++ b/dashboard-ui/librarypathmapping.html @@ -11,7 +11,7 @@

Media Folders Path Mapping - Other Settings + Advanced
diff --git a/dashboard-ui/librarysettings.html b/dashboard-ui/librarysettings.html index 31a77c5bd..279a504f7 100644 --- a/dashboard-ui/librarysettings.html +++ b/dashboard-ui/librarysettings.html @@ -11,7 +11,7 @@ diff --git a/dashboard-ui/scripts/mediaplayer.js b/dashboard-ui/scripts/mediaplayer.js index 3d23f4093..36382e504 100644 --- a/dashboard-ui/scripts/mediaplayer.js +++ b/dashboard-ui/scripts/mediaplayer.js @@ -180,9 +180,9 @@ currentProgressInterval = null; } } - + function canPlayWebm() { - + return testableVideoElement.canPlayType('video/webm').replace(/no/, ''); } @@ -218,12 +218,12 @@ var currentSrc = element.currentSrc; currentSrc = replaceQueryString(currentSrc, 'starttimeticks', ticks); - + if (params.AudioStreamIndex != null) { currentSrc = replaceQueryString(currentSrc, 'AudioStreamIndex', params.AudioStreamIndex); } if (params.SubtitleStreamIndex != null) { - currentSrc = replaceQueryString(currentSrc, 'SubtitleStreamIndex', params.SubtitleStreamIndex); + currentSrc = replaceQueryString(currentSrc, 'SubtitleStreamIndex', (params.SubtitleStreamIndex == -1 ? '' : params.SubtitleStreamIndex)); } var maxWidth = params.MaxWidth || getParameterByName('MaxWidth', currentSrc); @@ -539,7 +539,7 @@ console.log('Transcoding because the content is not a video file'); return false; } - + if ((videoStream.Codec || '').toLowerCase().indexOf('h264') == -1) { console.log('Transcoding because the content is not h264'); return false; @@ -554,15 +554,15 @@ console.log('Transcoding because subtitles are required'); return false; } - + if (!videoStream.Width || videoStream.Width > maxWidth) { console.log('Transcoding because resolution is too high'); return false; } - + var videoBitrate = videoStream.BitRate || 0; var audioBitrate = audioStream ? audioStream.BitRate || 0 : null; - + if ((videoBitrate + audioBitrate) > bitrate) { console.log('Transcoding because bitrate is too high'); return false; @@ -682,9 +682,9 @@ })[0]; var subtitleStream = (item.MediaStreams || []).filter(function (stream) { - return stream.Index === subtitleStreamIndex ; + return stream.Index === subtitleStreamIndex; })[0]; - + var canPlayDirect = canPlayVideoDirect(item, videoStream, audioStream, subtitleStream, maxWidth, bitrate); var audioBitrate = bitrate >= 700000 ? 128000 : 64000; @@ -897,7 +897,7 @@ console.log('Html5 Video error code: ' + errorCode); var errorMsg = 'There was an error playing the video.'; - + if (item.Type == "Channel") { errorMsg += " Please ensure there is an open tuner availalble."; } @@ -1007,7 +1007,7 @@ if (!user.Configuration.EnableMediaPlayback) { return false; } - + if (item.LocationType == "Virtual") { return false; } @@ -1488,7 +1488,7 @@ self.playById(id); return; } - + ApiClient.getItem(Dashboard.getCurrentUserId(), id).done(function (item) { if (item.IsFolder) { @@ -1781,6 +1781,11 @@ var html = ''; + streams.unshift({ + Index: -1, + Language: "Off" + }); + for (var i = 0, length = streams.length; i < length; i++) { var stream = streams[i]; @@ -1791,13 +1796,22 @@ html += '
'; } - html += ''; + if (stream.Index != -1) { + html += ''; + } else { + html += '
'; + } html += '
'; var language = null; + var options = []; - if (stream.Language && stream.Language != "und") { + if (stream.Language == "Off") { + language = "Off"; + options.push(' '); + } + else if (stream.Language && stream.Language != "und") { var culture = cultures.filter(function (current) { return current.ThreeLetterISOLanguageName.toLowerCase() == stream.Language.toLowerCase(); @@ -1810,8 +1824,6 @@ html += '
' + (language || 'Unknown language') + '
'; - var options = []; - if (stream.Codec) { options.push(stream.Codec); } @@ -1860,7 +1872,7 @@ if (isStatic) { options[0].name = "Direct"; } - + for (var i = 0, length = options.length; i < length; i++) { var option = options[i];