decord/source/modules/rtc/RTCLatencyTestManager.tsx

85 lines
3.8 KiB
TypeScript
Raw Normal View History

2026-09-03 10:05:34 +00:00
// Module ID: 17316
// Function ID: 17317
2026-07-29 08:29:29 +00:00
// Name: _terminate
2026-09-03 10:05:34 +00:00
// Dependencies: [4529, 4575, 4542, 684, 3, 5495, 17317, 1234, 2]
2026-07-20 16:05:17 +00:00
2026-09-03 10:05:34 +00:00
// Module 17316 (_terminate)
2026-08-24 06:08:38 +00:00
import timestampDefault from "timestamp" /* 3 */;
2026-09-02 09:53:35 +00:00
import setDefault from "set" /* 684 */;
2026-09-03 10:05:34 +00:00
import initializeDefault from "initialize" /* 5495 */;
2026-09-01 10:26:29 +00:00
import closure_3 from "_detectH265HardwareDecode" /* 4529 */;
import closure_4 from "initialize" /* 4575 */;
import { Features } from "DesktopSources" /* 4542 */;
2026-07-23 10:11:24 +00:00
2026-07-29 08:29:29 +00:00
let require = arg1;
2026-08-24 06:08:38 +00:00
const SECOND = setDefault.Millis.SECOND;
let closure_7 = 30 * setDefault.Millis.SECOND;
let obj = new timestampDefault("RTCLatencyTestManager");
2026-07-29 08:29:29 +00:00
obj.enableNativeLogger(true);
2026-08-24 06:08:38 +00:00
initializeDefault;
2026-07-29 08:29:29 +00:00
class RTCLatencyTestManager extends tmp3 {
constructor() {
applyArgumentsResult = HermesBuiltin.applyArguments(new.target, new.target);
closure_0 = applyArgumentsResult;
applyArgumentsResult.actions = {
POST_CONNECTION_OPEN() {
return applyArgumentsResult._handleConnectionOpen();
}
};
applyArgumentsResult._handleTestRegionsResponse = function _handleTestRegionsResponse(body) {
const mapped = body.map((region) => region.region);
2026-08-24 06:08:38 +00:00
if (closure_4.shouldPerformLatencyTest(mapped)) {
2026-07-29 08:29:29 +00:00
mediaEngine = mediaEngine.getMediaEngine();
const rankRtcRegionsResult = mediaEngine.rankRtcRegions(body);
mediaEngine.rankRtcRegions(body).then((url) => {
2026-08-24 06:08:38 +00:00
closure_1_8.verbose("RTC region latency test completed, ranked regions are: ", url);
const result = mapped(closure_1_2[6]).completeRTCLatencyTest(url, mapped);
2026-07-29 08:29:29 +00:00
}).catch((arg0) => logger.warn(arg0));
const nextPromise = mediaEngine.rankRtcRegions(body).then((url) => {
2026-08-24 06:08:38 +00:00
closure_1_8.verbose("RTC region latency test completed, ranked regions are: ", url);
const result = mapped(closure_1_2[6]).completeRTCLatencyTest(url, mapped);
2026-07-29 08:29:29 +00:00
});
} else {
const _HermesInternal = HermesInternal;
2026-08-24 06:08:38 +00:00
closure_8.verbose("RTC cached ranked preferred regions are " + closure_4.getPreferredRegions());
2026-07-29 08:29:29 +00:00
}
};
applyArgumentsResult._fetchAndScheduleRefetch = function _fetchAndScheduleRefetch() {
let num = 1;
2026-08-24 06:08:38 +00:00
if (closure_1_3.supports(closure_1_5.PORT_AWARE_LATENCY_TESTING)) {
2026-07-29 08:29:29 +00:00
num = 2;
}
2026-08-24 06:08:38 +00:00
const rTCLatencyTestRegions = applyArgumentsResult(closure_1_2[6]).fetchRTCLatencyTestRegions(num);
obj = applyArgumentsResult(closure_1_2[6]);
2026-07-29 08:29:29 +00:00
rTCLatencyTestRegions.then((body) => closure_0._handleTestRegionsResponse(body.body)).catch((arg0) => logger.warn(arg0));
2026-08-24 06:08:38 +00:00
applyArgumentsResult.refetchTimeout = setTimeout(applyArgumentsResult._fetchAndScheduleRefetch, 360 * closure_1_1(closure_1_2[3]).Millis.MINUTE);
2026-07-29 08:29:29 +00:00
};
applyArgumentsResult._handleConnectionOpen = function _handleConnectionOpen() {
2026-07-31 08:44:05 +00:00
if (null != window.GLOBAL_ENV.RTC_LATENCY_ENDPOINT) {
2026-08-24 06:08:38 +00:00
if (applyArgumentsResult(closure_1_2[7]).isPlatformEmbedded) {
2026-07-31 08:44:05 +00:00
const _Math = Math;
const _Math2 = Math;
2026-08-24 06:08:38 +00:00
const rounded = Math.floor(closure_1_6 + Math.random() * closure_1_7);
2026-07-31 08:44:05 +00:00
if (null != applyArgumentsResult.refetchTimeout) {
const _clearTimeout = clearTimeout;
clearTimeout(tmp4.refetchTimeout);
}
const _setTimeout = setTimeout;
applyArgumentsResult.refetchTimeout = setTimeout(applyArgumentsResult._fetchAndScheduleRefetch, rounded);
2026-07-29 08:29:29 +00:00
}
}
};
return applyArgumentsResult;
2026-07-20 16:05:17 +00:00
}
}
2026-07-29 08:29:29 +00:00
RTCLatencyTestManager.prototype["_terminate"] = function _terminate() {
if (null != this.refetchTimeout) {
const _clearTimeout = clearTimeout;
clearTimeout(tmp.refetchTimeout);
}
};
const rTCLatencyTestManager = new RTCLatencyTestManager();
2026-08-24 06:08:38 +00:00
let result = require("set").fileFinishedImporting("modules/rtc/RTCLatencyTestManager.tsx");
2026-07-20 16:05:17 +00:00
2026-07-29 08:29:29 +00:00
export default rTCLatencyTestManager;