You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
- Stats can now be queried. - Stats can be listened to for changes using IPixelStreamingModule::AddAnyStatChangedCallback. - Web frontend stats/settings cleaned up to reflect only important settings a user can change. - Removed latency tester in favour of a stats report. #jira UE-136118 #rb self [FYI] Aidan.Possemiers, Nick.Pace, Matthew.Cotton, William.Belcher #preflight 61d24a8921763c62c97d1378 #ROBOMERGE-AUTHOR: luke.bermingham #ROBOMERGE-SOURCE: CL 18499770 in //UE5/Release-5.0/... via CL 18499772 #ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669) [CL 18499773 by luke bermingham in ue5-release-engine-test branch]
149 lines
5.9 KiB
HTML
149 lines
5.9 KiB
HTML
<!-- Copyright Epic Games, Inc. All Rights Reserved. -->
|
|
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<link rel="shortcut icon" href="/images/favicon.ico" type="image/x-icon">
|
|
<link rel="icon" type="image/png" sizes="96x96" href="/images/favicon-96x96.png">
|
|
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32.png">
|
|
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16.png">
|
|
<link type="text/css" rel="stylesheet" href="player.css">
|
|
<script type="text/javascript">
|
|
// This horrible hack is to make Fippo's adapter-latest.js work with Firefox when not on https
|
|
// because FF does not let you access navigator.mediaDevices when on http.
|
|
var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
|
|
if(isFirefox){
|
|
window.navigator.mozGetUserMedia = function(){};
|
|
if(window.navigator.mediaDevices === undefined) {
|
|
navigator.mediaDevices = {};
|
|
navigator.mediaDevices.getSupportedConstraints = function(){ return {}; };
|
|
navigator.mediaDevices.getUserMedia = function(){ return {}; };
|
|
}
|
|
}
|
|
</script>
|
|
<script type="text/javascript" src="https://webrtc.github.io/adapter/adapter-latest.js"></script>
|
|
<script type="text/javascript" src="scripts/webRtcPlayer.js"></script>
|
|
<script type="text/javascript" src="scripts/app.js"></script>
|
|
</head>
|
|
|
|
<body onload="load()">
|
|
<div id="playerUI">
|
|
<div id="player"></div>
|
|
<div id="overlay" class="overlay text-light bg-dark">
|
|
<div id="overlayHeader">
|
|
<div id="qualityStatus" class="greyStatus">●</div>
|
|
<div id="overlayButton">+</div>
|
|
</div>
|
|
<div id="overlaySettings">
|
|
<div id="showFPS" class="setting">
|
|
<div class="settings-text">Show FPS</div>
|
|
<label class="btn-overlay">
|
|
<input type="button" id="show-fps-button" class="overlay-button btn-flat" value="Toggle">
|
|
</label>
|
|
</div>
|
|
<div id="kickOthers" class="setting">
|
|
<div class="settings-text">Kick all other players</div>
|
|
<label class="btn-overlay">
|
|
<input type="button" id="kick-other-players-button" class="overlay-button btn-flat" value="Kick">
|
|
</label>
|
|
</div>
|
|
<div id="fillWindow" class="setting">
|
|
<div class="settings-text">Enlarge display to fill window</div>
|
|
<label class="tgl-switch">
|
|
<input type="checkbox" id="enlarge-display-to-fill-window-tgl" class="tgl tgl-flat" checked>
|
|
<div class="tgl-slider"></div>
|
|
</label>
|
|
</div>
|
|
<div id="qualityControlOwnership" class="setting">
|
|
<div class="settings-text">Is quality controller?</div>
|
|
<label class="tgl-switch">
|
|
<input type="checkbox" id="quality-control-ownership-tgl" class="tgl tgl-flat">
|
|
<div class="tgl-slider"></div>
|
|
</label>
|
|
</div>
|
|
<div id="matchViewportResolution" class="setting">
|
|
<div class="settings-text">Match viewport resolution</div>
|
|
<label class="tgl-switch">
|
|
<input type="checkbox" id="match-viewport-res-tgl" class="tgl tgl-flat">
|
|
<div class="tgl-slider"></div>
|
|
</label>
|
|
</div>
|
|
|
|
<section id="encoderSettings">
|
|
<div id="encoderSettingsHeader" class="settings-text">
|
|
<div>Encoder Settings</div>
|
|
</div>
|
|
<div id="encoderParamsContainer" class="collapse">
|
|
<div class="form-group">
|
|
<label for="encoder-min-qp-text">Min QP</label>
|
|
<input type="number" class="form-control" id="encoder-min-qp-text" value="0" min="0" max="51" />
|
|
<label for="encoder-max-qp-text">Max QP</label>
|
|
<input type="number" class="form-control" id="encoder-max-qp-text" value="51" min="0" max="51" />
|
|
<br>
|
|
<input id="encoder-params-submit" class="overlay-button btn-flat" type="button" value="Apply">
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section id="webRTCSettings">
|
|
<div id="webRTCSettingsHeader" class="settings-text">
|
|
<div>WebRTC Settings</div>
|
|
</div>
|
|
<div id="webrtcParamsContainer" class="collapse">
|
|
<div class="form-group">
|
|
<label for="webrtc-fps-text">FPS</label>
|
|
<input type="number" class="form-control" id="webrtc-fps-text" value="60" min="1" max="999" />
|
|
<label for="webrtc-min-bitrate-text">Min bitrate (kbps)</label>
|
|
<input type="number" class="form-control" id="webrtc-min-bitrate-text" value="0" min="0" max="100000" />
|
|
<label for="webrtc-max-bitrate-text">Max bitrate (kbps)</label>
|
|
<input type="number" class="form-control" id="webrtc-max-bitrate-text" value="0" min="0" max="100000" />
|
|
<br>
|
|
<input id="webrtc-params-submit" class="overlay-button btn-flat" type="button" value="Apply">
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section id="streamSettings">
|
|
<div id="streamSettingsHeader" class="settings-text">
|
|
<div>Stream Settings</div>
|
|
</div>
|
|
<div id="streamSettingsContainer" class="collapse">
|
|
<div class="form-group">
|
|
<div class="settings-text">Player stream</div>
|
|
<select class="form-control" id="stream-select"></select>
|
|
<div class="settings-text">Player track</div>
|
|
<select class="form-control" id="track-select"></select>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<br>
|
|
|
|
<section id="statsPanel">
|
|
<div class="setting settings-text">
|
|
<div>Show Stats</div>
|
|
<label class="tgl-switch">
|
|
<input type="checkbox" id="show-stats-tgl" class="tgl tgl-flat" checked>
|
|
<div class="tgl-slider"></div>
|
|
</label>
|
|
</div>
|
|
<div id="statsContainer" class="statsContainer">
|
|
<div id="stats" class="stats"></div>
|
|
</div>
|
|
</section>
|
|
|
|
<section id="latencyTest">
|
|
<div class="setting settings-text">
|
|
<div>Latency Report</div>
|
|
<label class="btn-overlay">
|
|
<input type="button" id="test-latency-button" class="overlay-button btn-flat" value="Get Report">
|
|
</label>
|
|
</div>
|
|
<div id="latencyStatsContainer" class="statsContainer">
|
|
<div id=LatencyStats class="stats">No report yet...</div>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|