update hls to support mpeg2video

This commit is contained in:
Luke Pulverenti 2017-03-15 15:57:18 -04:00
parent 950fa80512
commit a7eb70e492
9 changed files with 26 additions and 24 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
{
"Connect": "Conectar",
"MessageNoServersAvailableToConnect": "N\u00e3o existe nenhum servidor para se conectar. Se foi convidado para compartilhar um servidor, aceite abaixo ou clicando no link no email.",
"MessageNoServersAvailableToConnect": "Nenhum servidor dispon\u00edvel para se conectar. Se foi convidado para compartilhar um servidor, aceite abaixo ou clicando no link no email.",
"Accept": "Aceitar",
"Reject": "Rejeitar",
"MessageUnlockAppWithPurchaseOrSupporter": "Desbloqueie esta funcionalidade com uma pequena compra \u00fanica, ou com uma assinatura ativa do Emby Premiere.",

View File

@ -1 +1 @@
define(["dialogHelper","dom","layoutManager","connectionManager","globalize","loading","material-icons","formDialogStyle","emby-button","emby-itemscontainer","cardStyle"],function(dialogHelper,dom,layoutManager,connectionManager,globalize,loading){"use strict";function getEditorHtml(){var html="";return html+='<div class="formDialogContent smoothScrollY" style="padding-top:2em;">',html+='<div class="dialogContentInner dialog-content-centered">',html+='<div class="loadingContent hide">',html+="<p>"+globalize.translate("DetectingDevices")+"...</p>",html+="<p>"+globalize.translate("MessagePleaseWait")+"</p>",html+="</div>",html+='<div is="emby-itemscontainer" class="results vertical-wrap">',html+="</div>",html+="</div>",html+="</div>"}function getDeviceHtml(device){var padderClass,html="",cssClass="card scalableCard",cardBoxCssClass="cardBox visualCardBox";return cssClass+=" backdropCard backdropCard-scalable",padderClass="cardPadder-backdrop",layoutManager.tv&&(cssClass+=" card-focusscale",cardBoxCssClass+=" cardBox-focustransform"),cardBoxCssClass+=" card-focuscontent",html+='<button type="button" class="'+cssClass+'" data-id="'+device.DeviceId+'" style="min-width:33.3333%;">',html+='<div class="'+cardBoxCssClass+'">',html+='<div class="cardScalable visualCardBox-cardScalable">',html+='<div class="'+padderClass+'"></div>',html+='<div class="cardContent searchImage">',html+='<div class="cardImageContainer coveredImage"><i class="cardImageIcon md-icon">dvr</i></div>',html+="</div>",html+="</div>",html+='<div class="cardFooter visualCardBox-cardFooter">',html+='<div class="cardText cardTextCentered">'+device.FriendlyName+"</div>",html+='<div class="cardText cardText-secondary cardTextCentered">',html+=device.Url||"&nbsp;",html+="</div>",html+="</div>",html+="</div>",html+="</button>"}function renderDevices(view,devices){var i,length,html="";for(i=0,length=devices.length;i<length;i++)html+=getDeviceHtml(devices[i]);var elem=view.querySelector(".results");elem.innerHTML=html,layoutManager.tv&&focusManager.autoFocus(elem)}function discoverDevices(view,apiClient){return loading.show(),view.querySelector(".loadingContent").classList.remove("hide"),ApiClient.getJSON(ApiClient.getUrl("LiveTv/Tuners/Discvover")).then(function(devices){currentDevices=devices,renderDevices(view,devices),view.querySelector(".loadingContent").classList.add("hide"),loading.hide()})}function tunerPicker(){var self=this;self.show=function(options){var dialogOptions={removeOnClose:!0,scrollY:!1};layoutManager.tv?dialogOptions.size="fullscreen":dialogOptions.size="small";var dlg=dialogHelper.createDialog(dialogOptions);dlg.classList.add("formDialog");var html="";html+='<div class="formDialogHeader">',html+='<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button>',html+='<h3 class="formDialogHeaderTitle">',html+=globalize.translate("HeaderLiveTvTunerSetup"),html+="</h3>",html+="</div>",html+=getEditorHtml(),dlg.innerHTML=html,dlg.querySelector(".btnCancel").addEventListener("click",function(){dialogHelper.close(dlg)});var deviceResult;dlg.querySelector(".results").addEventListener("click",function(e){var tunerCard=dom.parentWithClass(e.target,"card");if(tunerCard){var deviceId=tunerCard.getAttribute("data-id");deviceResult=currentDevices.filter(function(d){return d.DeviceId===deviceId})[0],dialogHelper.close(dlg)}}),layoutManager.tv&&centerFocus(dlg.querySelector(".formDialogContent"),!1,!0);var apiClient=connectionManager.getApiClient(options.serverId);return discoverDevices(dlg,apiClient),layoutManager.tv&&centerFocus(dlg.querySelector(".formDialogContent"),!1,!1),dialogHelper.open(dlg).then(function(){return deviceResult?Promise.resolve(deviceResult):Promise.reject()})}}var currentDevices=[];return tunerPicker});
define(["dialogHelper","dom","layoutManager","connectionManager","globalize","loading","material-icons","formDialogStyle","emby-button","emby-itemscontainer","cardStyle"],function(dialogHelper,dom,layoutManager,connectionManager,globalize,loading){"use strict";function getEditorHtml(){var html="";return html+='<div class="formDialogContent smoothScrollY">',html+='<div class="dialogContentInner dialog-content-centered">',html+='<div class="loadingContent hide">',html+="<h1>"+globalize.translate("DetectingDevices")+"...</h1>",html+="<p>"+globalize.translate("MessagePleaseWait")+"</p>",html+="</div>",html+='<h1 style="margin-bottom:.25em;" class="devicesHeader hide">'+globalize.translate("HeaderNewDevices")+"</h1>",html+='<div is="emby-itemscontainer" class="results vertical-wrap">',html+="</div>",html+="</div>",html+="</div>"}function getDeviceHtml(device){var padderClass,html="",cssClass="card scalableCard",cardBoxCssClass="cardBox visualCardBox";return cssClass+=" backdropCard backdropCard-scalable",padderClass="cardPadder-backdrop",layoutManager.tv&&(cssClass+=" card-focusscale",cardBoxCssClass+=" cardBox-focustransform"),cardBoxCssClass+=" card-focuscontent",html+='<button type="button" class="'+cssClass+'" data-id="'+device.DeviceId+'" style="min-width:33.3333%;">',html+='<div class="'+cardBoxCssClass+'">',html+='<div class="cardScalable visualCardBox-cardScalable">',html+='<div class="'+padderClass+'"></div>',html+='<div class="cardContent searchImage">',html+='<div class="cardImageContainer coveredImage"><i class="cardImageIcon md-icon">dvr</i></div>',html+="</div>",html+="</div>",html+='<div class="cardFooter visualCardBox-cardFooter">',html+='<div class="cardText cardTextCentered">'+device.FriendlyName+"</div>",html+='<div class="cardText cardText-secondary cardTextCentered">',html+=device.Url||"&nbsp;",html+="</div>",html+="</div>",html+="</div>",html+="</button>"}function renderDevices(view,devices){var i,length,html="";for(i=0,length=devices.length;i<length;i++)html+=getDeviceHtml(devices[i]);devices.length?view.querySelector(".devicesHeader").classList.remove("hide"):(html="<p>"+globalize.translate("NoNewDevicesFound")+"</p>",view.querySelector(".devicesHeader").classList.add("hide"));var elem=view.querySelector(".results");elem.innerHTML=html,layoutManager.tv&&focusManager.autoFocus(elem)}function discoverDevices(view,apiClient){return loading.show(),view.querySelector(".loadingContent").classList.remove("hide"),ApiClient.getJSON(ApiClient.getUrl("LiveTv/Tuners/Discvover",{NewDevicesOnly:!0})).then(function(devices){currentDevices=devices,renderDevices(view,devices),view.querySelector(".loadingContent").classList.add("hide"),loading.hide()})}function tunerPicker(){var self=this;self.show=function(options){var dialogOptions={removeOnClose:!0,scrollY:!1};layoutManager.tv?dialogOptions.size="fullscreen":dialogOptions.size="small";var dlg=dialogHelper.createDialog(dialogOptions);dlg.classList.add("formDialog");var html="";html+='<div class="formDialogHeader">',html+='<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button>',html+='<h3 class="formDialogHeaderTitle">',html+=globalize.translate("HeaderLiveTvTunerSetup"),html+="</h3>",html+="</div>",html+=getEditorHtml(),dlg.innerHTML=html,dlg.querySelector(".btnCancel").addEventListener("click",function(){dialogHelper.close(dlg)});var deviceResult;dlg.querySelector(".results").addEventListener("click",function(e){var tunerCard=dom.parentWithClass(e.target,"card");if(tunerCard){var deviceId=tunerCard.getAttribute("data-id");deviceResult=currentDevices.filter(function(d){return d.DeviceId===deviceId})[0],dialogHelper.close(dlg)}}),layoutManager.tv&&centerFocus(dlg.querySelector(".formDialogContent"),!1,!0);var apiClient=connectionManager.getApiClient(options.serverId);return discoverDevices(dlg,apiClient),layoutManager.tv&&centerFocus(dlg.querySelector(".formDialogContent"),!1,!1),dialogHelper.open(dlg).then(function(){return deviceResult?Promise.resolve(deviceResult):Promise.reject()})}}var currentDevices=[];return tunerPicker});

View File

@ -3,20 +3,20 @@
<div data-role="content">
<div class="content-primary">
<div class="readOnlyContent">
<div class="liveTvStatusContent" style="display: none;">
<div class="liveTvStatusContent" style="display: none;">
<div>
<h1 style="display:inline-block;vertical-align:middle;">${HeaderTunerDevices}</h1>
<button is="emby-button" type="button" class="raised btnAddDevice submit mini" style="margin-left:1em;" title="${ButtonAdd}">
<i class="md-icon">add</i>
<span>${ButtonAdd}</span>
</button>
</div>
<div class="devicesList">
</div>
<div class="flex align-items-center" style="margin:1em 0;">
<h1 style="margin:0;">${HeaderTunerDevices}</h1>
<button is="emby-button" type="button" class="raised btnAddDevice submit mini" style="margin-left:1em;" title="${ButtonAdd}">
<i class="md-icon">add</i>
<span>${ButtonAdd}</span>
</button>
</div>
<div is="emby-itemscontainer" class="devicesList vertical-wrap">
</div>
<div class="readOnlyContent">
<div>
<br />
<div>
@ -46,12 +46,12 @@
</div>
</div>
</div>
</div>
<div class="servicesSection" style="display:none;">
<br />
<h1>${HeaderExternalServices}</h1>
<div class="servicesList">
</div>
<div class="servicesSection readOnlyContent" style="display:none;">
<br />
<h1>${HeaderExternalServices}</h1>
<div class="servicesList">
</div>
</div>
</div>

View File

@ -1 +1 @@
define(["cardBuilder","apphost","imageLoader","libraryBrowser","emby-itemscontainer"],function(cardBuilder,appHost,imageLoader,libraryBrowser){"use strict";return function(view,params){function getSavedQueryKey(){return libraryBrowser.getSavedQueryKey()}function reloadItems(page){Dashboard.showLoadingMsg();var promise="Recordings"==params.type?ApiClient.getLiveTvRecordings(query):"RecordingSeries"==params.type?ApiClient.getLiveTvRecordingSeries(query):"true"==params.IsAiring?ApiClient.getLiveTvRecommendedPrograms(query):ApiClient.getLiveTvPrograms(query);promise.then(function(result){function onNextPageClick(){query.StartIndex+=query.Limit,reloadItems(page)}function onPreviousPageClick(){query.StartIndex-=query.Limit,reloadItems(page)}window.scrollTo(0,0);var html="",pagingHtml=libraryBrowser.getQueryPagingHtml({startIndex:query.StartIndex,limit:query.Limit,totalRecordCount:result.TotalRecordCount,showLimit:!1});page.querySelector(".listTopPaging").innerHTML=pagingHtml;var supportsImageAnalysis=appHost.supports("imageanalysis")&&("Recordings"==params.type||"RecordingSeries"==params.type);html=cardBuilder.getCardsHtml({items:result.Items,shape:query.IsMovie||"RecordingSeries"==params.type?"portrait":"backdrop",preferThumb:!query.IsMovie&&"RecordingSeries"!=params.type,inheritThumb:"Recordings"==params.type,context:"livetv",centerText:!supportsImageAnalysis,lazy:!0,overlayText:!1,showParentTitleOrTitle:!0,showTitle:!1,showParentTitle:query.IsSeries!==!1&&!query.IsMovie,showAirTime:"Recordings"!=params.type&&"RecordingSeries"!=params.type,showAirDateTime:"Recordings"!=params.type&&"RecordingSeries"!=params.type,showChannelName:"Recordings"!=params.type&&"RecordingSeries"!=params.type,overlayMoreButton:!supportsImageAnalysis,showYear:query.IsMovie&&"Recordings"==params.type,showSeriesYear:"RecordingSeries"===params.type,coverImage:!0,cardLayout:supportsImageAnalysis,vibrant:supportsImageAnalysis});var elem=page.querySelector(".itemsContainer");elem.innerHTML=html+pagingHtml,imageLoader.lazyChildren(elem);var i,length,elems;for(elems=page.querySelectorAll(".btnNextPage"),i=0,length=elems.length;i<length;i++)elems[i].addEventListener("click",onNextPageClick);for(elems=page.querySelectorAll(".btnPreviousPage"),i=0,length=elems.length;i<length;i++)elems[i].addEventListener("click",onPreviousPageClick);libraryBrowser.saveQueryValues(getSavedQueryKey(),query),Dashboard.hideLoadingMsg()})}var query={UserId:Dashboard.getCurrentUserId(),StartIndex:0,Fields:"ChannelInfo",Limit:libraryBrowser.getDefaultPageSize()};"Recordings"==params.type?(query.IsInProgress=!1,params.groupid&&(query.GroupId=params.groupid)):"RecordingSeries"==params.type?(query.SortOrder="SortName",query.SortOrder="Ascending"):(query.HasAired=!1,query.SortBy="StartDate,SortName",query.SortOrder="Ascending"),view.addEventListener("viewbeforeshow",function(){query.ParentId=LibraryMenu.getTopParentId();var page=this;"true"==params.IsMovie?query.IsMovie=!0:"false"==params.IsMovie&&(query.IsMovie=!1),"true"==params.IsSeries?query.IsSeries=!0:"false"==params.IsSeries&&(query.IsSeries=!1),"true"==params.IsNews?query.IsNews=!0:"false"==params.IsNews&&(query.IsNews=!1),"true"==params.IsSports?query.IsSports=!0:"false"==params.IsSports&&(query.IsSports=!1),"true"==params.IsKids?query.IsKids=!0:"false"==params.IsKids&&(query.IsKids=!1),"true"==params.IsAiring?query.IsAiring=!0:"false"==params.IsAiring&&(query.IsAiring=!1),"Recordings"==params.type?"true"==params.IsMovie?LibraryMenu.setTitle(Globalize.translate("TabMovies")):"true"==params.IsSports?LibraryMenu.setTitle(Globalize.translate("Sports")):"true"==params.IsKids?LibraryMenu.setTitle(Globalize.translate("HeaderForKids")):LibraryMenu.setTitle(Globalize.translate("TabRecordings")):"RecordingSeries"==params.type?LibraryMenu.setTitle(Globalize.translate("TabSeries")):"true"==params.IsMovie?LibraryMenu.setTitle(Globalize.translate("HeaderUpcomingMovies")):"true"==params.IsSports?LibraryMenu.setTitle(Globalize.translate("HeaderUpcomingSports")):"true"==params.IsKids?LibraryMenu.setTitle(Globalize.translate("HeaderUpcomingForKids")):"true"==params.IsAiring?LibraryMenu.setTitle(Globalize.translate("HeaderWhatsOnTV")):LibraryMenu.setTitle(Globalize.translate("HeaderUpcomingPrograms"));var viewkey=getSavedQueryKey();libraryBrowser.loadSavedQueryValues(viewkey,query),reloadItems(page)})}});
define(["cardBuilder","apphost","imageLoader","libraryBrowser","emby-itemscontainer"],function(cardBuilder,appHost,imageLoader,libraryBrowser){"use strict";return function(view,params){function getSavedQueryKey(){return libraryBrowser.getSavedQueryKey()}function reloadItems(page){Dashboard.showLoadingMsg();var promise="Recordings"==params.type?ApiClient.getLiveTvRecordings(query):"RecordingSeries"==params.type?ApiClient.getLiveTvRecordingSeries(query):"true"==params.IsAiring?ApiClient.getLiveTvRecommendedPrograms(query):ApiClient.getLiveTvPrograms(query);promise.then(function(result){function onNextPageClick(){query.StartIndex+=query.Limit,reloadItems(page)}function onPreviousPageClick(){query.StartIndex-=query.Limit,reloadItems(page)}window.scrollTo(0,0);var html="",pagingHtml=libraryBrowser.getQueryPagingHtml({startIndex:query.StartIndex,limit:query.Limit,totalRecordCount:result.TotalRecordCount,showLimit:!1});page.querySelector(".listTopPaging").innerHTML=pagingHtml,html=cardBuilder.getCardsHtml({items:result.Items,shape:query.IsMovie||"RecordingSeries"==params.type?"portrait":"backdrop",preferThumb:!query.IsMovie&&"RecordingSeries"!=params.type,inheritThumb:"Recordings"==params.type,context:"livetv",centerText:!0,lazy:!0,overlayText:!1,showTitle:!0,showParentTitle:query.IsSeries!==!1&&!query.IsMovie,showAirTime:"Recordings"!=params.type&&"RecordingSeries"!=params.type,showAirDateTime:"Recordings"!=params.type&&"RecordingSeries"!=params.type,showChannelName:"Recordings"!=params.type&&"RecordingSeries"!=params.type,overlayMoreButton:!0,showYear:query.IsMovie&&"Recordings"==params.type,showSeriesYear:"RecordingSeries"===params.type,coverImage:!0});var elem=page.querySelector(".itemsContainer");elem.innerHTML=html+pagingHtml,imageLoader.lazyChildren(elem);var i,length,elems;for(elems=page.querySelectorAll(".btnNextPage"),i=0,length=elems.length;i<length;i++)elems[i].addEventListener("click",onNextPageClick);for(elems=page.querySelectorAll(".btnPreviousPage"),i=0,length=elems.length;i<length;i++)elems[i].addEventListener("click",onPreviousPageClick);libraryBrowser.saveQueryValues(getSavedQueryKey(),query),Dashboard.hideLoadingMsg()})}var query={UserId:Dashboard.getCurrentUserId(),StartIndex:0,Fields:"ChannelInfo",Limit:libraryBrowser.getDefaultPageSize()};"Recordings"==params.type?(query.IsInProgress=!1,params.groupid&&(query.GroupId=params.groupid)):"RecordingSeries"==params.type?(query.SortOrder="SortName",query.SortOrder="Ascending"):(query.HasAired=!1,query.SortBy="StartDate,SortName",query.SortOrder="Ascending"),view.addEventListener("viewbeforeshow",function(){query.ParentId=LibraryMenu.getTopParentId();var page=this;"true"==params.IsMovie?query.IsMovie=!0:"false"==params.IsMovie&&(query.IsMovie=!1),"true"==params.IsSeries?query.IsSeries=!0:"false"==params.IsSeries&&(query.IsSeries=!1),"true"==params.IsNews?query.IsNews=!0:"false"==params.IsNews&&(query.IsNews=!1),"true"==params.IsSports?query.IsSports=!0:"false"==params.IsSports&&(query.IsSports=!1),"true"==params.IsKids?query.IsKids=!0:"false"==params.IsKids&&(query.IsKids=!1),"true"==params.IsAiring?query.IsAiring=!0:"false"==params.IsAiring&&(query.IsAiring=!1),"Recordings"==params.type?"true"==params.IsMovie?LibraryMenu.setTitle(Globalize.translate("TabMovies")):"true"==params.IsSports?LibraryMenu.setTitle(Globalize.translate("Sports")):"true"==params.IsKids?LibraryMenu.setTitle(Globalize.translate("HeaderForKids")):LibraryMenu.setTitle(Globalize.translate("TabRecordings")):"RecordingSeries"==params.type?LibraryMenu.setTitle(Globalize.translate("TabSeries")):"true"==params.IsMovie?LibraryMenu.setTitle(Globalize.translate("HeaderUpcomingMovies")):"true"==params.IsSports?LibraryMenu.setTitle(Globalize.translate("HeaderUpcomingSports")):"true"==params.IsKids?LibraryMenu.setTitle(Globalize.translate("HeaderUpcomingForKids")):"true"==params.IsAiring?LibraryMenu.setTitle(Globalize.translate("HeaderWhatsOnTV")):LibraryMenu.setTitle(Globalize.translate("HeaderUpcomingPrograms"));var viewkey=getSavedQueryKey();libraryBrowser.loadSavedQueryValues(viewkey,query),reloadItems(page)})}});

File diff suppressed because one or more lines are too long

View File

@ -1787,6 +1787,7 @@
"ButtonServer": "Server",
"HeaderLibrary": "Library",
"HeaderMedia": "Media",
"NoNewDevicesFound": "No new devices found.",
"NoResultsFound": "No results found.",
"ButtonManageServer": "Manage Server",
"ButtonPreferences": "Preferences",
@ -1971,5 +1972,6 @@
"DetectingDevices": "Detecting devices",
"LabelAutomaticallyRefreshInternetMetadataEvery": "Automatically refresh metadata from the internet:",
"Never": "Never",
"EveryNDays": "Every {0} days"
"EveryNDays": "Every {0} days",
"HeaderNewDevices": "New Devices"
}