@epicgames-ps/lib-pixelstreamingfrontend-ue5.4
Version:
Frontend library for Unreal Engine 5.4 Pixel Streaming
77 lines (68 loc) • 2.26 kB
text/typescript
// Copyright Epic Games, Inc. All Rights Reserved.
import { Logger } from '../Logger/Logger';
/**
* Latency Test Results Data
*/
export class LatencyTestResults {
//Fields Set from the latency payload regardless of version
ReceiptTimeMs: number = null;
TransmissionTimeMs: number = null;
//Fields Set from the latency payload from 4.27.2
PreCaptureTimeMs: number = null;
PostCaptureTimeMs: number = null;
PreEncodeTimeMs: number = null;
PostEncodeTimeMs: number = null;
//Fields Set from the latency payload from 5.0
EncodeMs: number = null;
CaptureToSendMs: number = null;
//Fields Set when processed
testStartTimeMs = 0;
browserReceiptTimeMs = 0;
//Fields set from calculations
latencyExcludingDecode = 0;
testDuration = 0;
//ueLatency: number = 0;
networkLatency = 0;
browserSendLatency = 0;
frameDisplayDeltaTimeMs = 0;
endToEndLatency = 0;
//uePixelStreamLatency: number = 0;
encodeLatency = 0;
/**
* Sets the Delta Time Milliseconds
* @param DeltaTimeMs - Delta Time Milliseconds
*/
setFrameDisplayDeltaTime(DeltaTimeMs: number) {
if (this.frameDisplayDeltaTimeMs == 0) {
this.frameDisplayDeltaTimeMs = Math.round(DeltaTimeMs);
}
}
/**
* Process the encoder times and set them
*/
processFields() {
if (
this.EncodeMs == null &&
(this.PreEncodeTimeMs != null || this.PostEncodeTimeMs != null)
) {
Logger.Log(
Logger.GetStackTrace(),
`Setting Encode Ms \n ${this.PostEncodeTimeMs} \n ${this.PreEncodeTimeMs}`,
6
);
this.EncodeMs = this.PostEncodeTimeMs - this.PreEncodeTimeMs;
}
if (
this.CaptureToSendMs == null &&
(this.PreCaptureTimeMs != null || this.PostCaptureTimeMs != null)
) {
Logger.Log(
Logger.GetStackTrace(),
`Setting CaptureToSendMs Ms \n ${this.PostCaptureTimeMs} \n ${this.PreCaptureTimeMs}`,
6
);
this.CaptureToSendMs =
this.PostCaptureTimeMs - this.PreCaptureTimeMs;
}
}
}