import connectionManager from"./../emby-apiclient/connectionmanager.js";import playbackManager from"./../common/playback/playbackmanager.js";import globalize from"./../common/globalize.js";import events from"./../emby-apiclient/events.js";import"./../emby-elements/emby-button/paper-icon-button-light.js";import dataFormatter from"./../common/dataformatter.js";import layoutManager from"./../layoutmanager.js";function init(instance,container){var parent=document.createElement("div"),button=(parent.classList.add("playerStats","hide"),layoutManager.tv?parent.style.overflow="hidden":parent.classList.add("scrollY","hiddenScrollY"),parent.innerHTML='
',parent.querySelector(".playerStats-closeButton"));button&&button.addEventListener("click",onCloseButtonClick.bind(instance)),container.appendChild(parent),instance.element=parent}function onCloseButtonClick(){this.enabled(!1),events.trigger(this,"close")}function renderStats(elem,categories){elem.querySelector(".playerStats-stats").innerHTML=categories.map(function(category){let categoryHtml="";var stats=category.stats;stats.length&&category.name&&(categoryHtml=(categoryHtml=(categoryHtml=(categoryHtml=(categoryHtml+='
')+category.name)+'
')+(category.subText||""))+"
");for(let i=0,length=stats.length;i';var stat=stats[i];null!=stat.label&&(categoryHtml=(categoryHtml+='
')+stat.label+"
"),null!=stat.value&&(categoryHtml=(categoryHtml+='
')+stat.value+"
"),categoryHtml+=""}return categoryHtml}).join("")}function getSession(instance,player){return Date.now()-(instance.lastSessionTime||0)<1e4?Promise.resolve(instance.lastSession):(player=connectionManager.getApiClient(playbackManager.currentItem(player).ServerId)).getSessions({deviceId:player.deviceId()}).then(function(sessions){return instance.lastSession=sessions[0]||{},instance.lastSessionTime=Date.now(),Promise.resolve(instance.lastSession)},function(){return Promise.resolve({})})}function getStreamStats(session){var stats=[],playstate=session.PlayState||{},nowplayingItem=session.NowPlayingItem||{},session=session.TranscodingInfo||{};if(nowplayingItem.Container){let containerInfo=nowplayingItem.Container.toUpperCase();nowplayingItem.Bitrate&&(containerInfo+=" ("+dataFormatter.bitrateToString(nowplayingItem.Bitrate)+")"),stats.push({label:containerInfo})}let playMethod='';if("Transcode"===playstate.PlayMethod){nowplayingItem=[];if(session.SubProtocol&&"progressive"!==session.SubProtocol?nowplayingItem.push(session.SubProtocol.toUpperCase()):session.Container&&nowplayingItem.push(session.Container.toUpperCase()),session.Bitrate){let bitrateInfo="(";session.Bitrate&&(bitrateInfo+=dataFormatter.bitrateToString(session.Bitrate)),session.Framerate&&(bitrateInfo+=" "+session.Framerate+" fps"),bitrateInfo+=")",nowplayingItem.push(bitrateInfo)}session.CurrentThrottle&&nowplayingItem.push('Throttling'),playMethod+=nowplayingItem.join(" ")}else playMethod+=globalize.translate("HeaderDirectPlay");stats.push({value:playMethod});var transcodeReasons=session.TranscodeReasons||[];for(let i=0,length=transcodeReasons.length;i'),stats.push({label:title});var session=[],framerate=(mediaStream.Profile&&session.push(mediaStream.Profile),mediaStream.Level&&session.push(mediaStream.Level),mediaStream.BitRate&&session.push(dataFormatter.bitrateToString(mediaStream.BitRate)),mediaStream.AverageFrameRate||mediaStream.RealFrameRate);framerate&&session.push(dataFormatter.numberToString(framerate,3)+" fps"),session.length&&stats.push({label:session.join(" ")});let playMethod='';if(!1===playstate.IsVideoDirect?(playMethod=(playMethod=playMethod+globalize.translate("Transcode")+" (")+(playstate.VideoCodec||"").toUpperCase()+" ",playstate.VideoBitrate&&(playMethod+=dataFormatter.bitrateToString(playstate.VideoBitrate)),playMethod+=")",playstate.VideoEncoderHwAccel&&(playMethod+='')):playMethod+=globalize.translate("HeaderDirectPlay"),stats.push({value:playMethod}),!1===playstate.IsVideoDirect){var pipeline=playstate.VideoPipelineInfo||[];for(let i=0,length=pipeline.length;i('+extra.join(" ")+")"),stats.push({value:html})}}}}return stats}function getAudioStats(session){var stats=[],playstate=session.PlayState||{},mediaStreams=(session.NowPlayingItem||{}).MediaStreams||[],audioStreamIndex=playstate.AudioStreamIndex,playstate=session.TranscodingInfo||{};let mediaStream;for(let i=0,length=mediaStreams.length;i