Files
discord-decomp/sources/stores/RTCDebugStore.tsx
T
2026-07-27 16:20:00 +03:00

608 lines
30 KiB
TypeScript

/* Metro module 10865; source: stores/RTCDebugStore.tsx; dependencies: [15, 17, 18, 57, 6, 7, 4259, 1878, 661, 4291, 10866, 4406, 694, 566, 2] */
function _fun83225(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#83225, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:6, offset: 0x01f11d41, size: 817 bytes, params: 8, frame: 25
const env0_0 = require;
const makeStreamKey = function(a0, a1, a2) {
return '' + a0 + ':' + a1 + ':' + a2;
};
const makeSimulcastKey = function(a0, a1) {
return '' + a0 + ':' + a1;
};
const closure = function(a0, a1, a2) {
return '' + a0 + ':' + a1 + ':' + a2;
};
const closure2 = function(a0) {
var r0;
var value = a0;
if (global.Array.isArray(value)) {
value = value.at(-1);
r0 = value?.value;
} else {
r0 = value;
}
return r0;
};
const closure3 = setDefaultStats;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_4 = importDefault(15) /* metro dependency 15 */;
const env0_5 = importDefault(17) /* metro dependency 17 */;
const env0_6 = importDefault(18) /* metro dependency 18 */;
const env0_7 = importDefault(57) /* metro dependency 57 */;
const env0_8 = importDefault(6) /* metro dependency 6 */;
const env0_9 = importDefault(7) /* metro dependency 7 */;
const mediaEngineStore = importDefault(4259) /* metro dependency 4259: MediaEngineStore */;
const userStore = importDefault(1878) /* metro dependency 1878: UserStore */;
const RTCDebugSections = (require(661) /* metro dependency 661: Constants */).RTCDebugSections;
let value = require(4291) /* metro dependency 4291: Constants */;
const MediaEngineContextTypes = value.MediaEngineContextTypes;
const env0_13 = value.Features;
const env0_14 = value.SimulcastOverrideQuality;
const DEFAULT = MediaEngineContextTypes.DEFAULT;
const TRANSPORT = RTCDebugSections.TRANSPORT;
value = closure(DEFAULT, TRANSPORT, 0);
const env0_17 = {};
let Map = global.Map;
let map = new Map();
const value4 = _fun83238();
const env0_20 = value4.empty();
Map = global.Map;
map = new Map();
closure3();
const Store = (importDefault(566) /* metro dependency 566: flux */).Store;
const value7 = _fun83243(Store);
value7.displayName = 'RTCDebugStore';
const value10 = new value7(importDefault(694) /* metro dependency 694: Dispatcher */,
{RTC_DEBUG_MODAL_OPEN: RTC_DEBUG_MODAL_OPEN, RTC_DEBUG_MODAL_CLOSE: function() {
destroyReplayConnection();
}, RTC_DEBUG_MODAL_SET_SECTION: function(a0) {
env0_16 = a0.section;
}, RTC_DEBUG_MODAL_OPEN_REPLAY: RTC_DEBUG_MODAL_OPEN_REPLAY,
RTC_DEBUG_MODAL_OPEN_REPLAY_AT_PATH: RTC_DEBUG_MODAL_OPEN_REPLAY_AT_PATH,
RTC_DEBUG_MODAL_UPDATE_VIDEO_OUTPUT: RTC_DEBUG_MODAL_UPDATE_VIDEO_OUTPUT,
RTC_DEBUG_SET_RECORDING_FLAG: function(a0) {
env0_21 = a0.value;
}, RTC_DEBUG_SET_SIMULCAST_OVERRIDE: RTC_DEBUG_SET_SIMULCAST_OVERRIDE_83264,
VOICE_CHANNEL_SELECT: VOICE_CHANNEL_SELECT_83265, RTC_CONNECTION_VIDEO: RTC_CONNECTION_VIDEO_83266,
MEDIA_ENGINE_CONNECTION_STATS: MEDIA_ENGINE_CONNECTION_STATS_83267});
(require(2) /* metro dependency 2 */).fileFinishedImporting('stores/RTCDebugStore.tsx');
exports.default = value10;
exports.DEFAULT_SECTION = value;
exports.graphs = {'availableOutgoingBitrate': true, 'bitrate': true, 'bitrateTarget': true, 'bytesReceived': true,
'bytesSent': true, 'encoderQualityPsnr': true, 'encoderQualityVmaf': true, 'encodeUsage': true,
'frameRateDecode': true, 'frameRateEncode': true, 'frameRateInput': true, 'frameRateNetwork': true,
'frameRateRender': true, 'keyFramesEncoded': true, 'keyFramesDecoded': true, 'inboundBitrateEstimate': true,
'packetsLost': true, 'packetsReceived': true, 'packetsSent': true, 'ping': true, 'qpSum': true,
'videoEntropy': true, 'audioLevel': true, 'screenshareCapturedFps': true, 'screenshareCapturedFpsUnique': true};
exports.RTCDebugVideoOutputMap = value4;
exports.keySection = closure;
exports.parseSection = parseSection;
exports.getLastGraphValue = closure2;
}
function _isNativeReflectConstruct_83226() { // fn#83226, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:303, offset: 0x01f12072, size: 98 bytes, params: 1, frame: 18
var Boolean;
var prototype;
var valueOf;
var call;
var Reflect;
var construct;
var closure;
var value;
var error;
try {
Boolean = global.Boolean;
prototype = Boolean.prototype;
valueOf = prototype.valueOf;
call = valueOf.call;
Reflect = global.Reflect;
construct = Reflect.construct;
Boolean = global.Boolean;
closure = function() {
};
value = Reflect.apply(construct, Reflect, [Boolean, [], closure]);
value = Reflect.apply(call, valueOf, [value]);
var result = !value;
} catch (error) {
}
return (_isNativeReflectConstruct_83226_isNativeReflectConstruct = function() {
return !!result;
})();
}
function setDefaultStats() { // fn#83233, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:1819, offset: 0x01f12115, size: 48 bytes, params: 1, frame: 11
const Object = global.Object;
Object.values(MediaEngineContextTypes).forEach(_fun83234);
}
function destroyReplayConnection() { // fn#83235, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:1887, offset: 0x01f12159, size: 35 bytes, params: 1, frame: 11
if (env0_22 != null) {
env0_22.destroy();
}
}
function computeScreenshareFps({videohookFrames, hybridDxgiFrames, hybridGdiFrames, hybridVideohookFrames, hybridGraphicsCaptureFrames, quartzFrames, screenCaptureKitFrames, hybridDxgiFramesUnique, hybridGdiBitBltFramesUnique, hybridGdiPrintWindowFramesUnique, hybridVideohookFramesUnique, hybridGraphicsCaptureFramesUnique}, {videohookFrames, hybridDxgiFrames, hybridGdiFrames, hybridVideohookFrames, hybridGraphicsCaptureFrames, quartzFrames, screenCaptureKitFrames, hybridDxgiFramesUnique, hybridGdiBitBltFramesUnique, hybridGdiPrintWindowFramesUnique, hybridVideohookFramesUnique, hybridGraphicsCaptureFramesUnique}, a2) { // fn#83236, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:1952, offset: 0x01f1217c, size: 591 bytes, params: 4, frame: 20
const value7 = (videohookFrames ?? 0) + (hybridDxgiFrames ?? 0) + (hybridGdiFrames ?? 0) + (hybridVideohookFrames ?? 0) + (hybridGraphicsCaptureFrames ?? 0) + (quartzFrames ?? 0) + (screenCaptureKitFrames ?? 0);
const value13 = (videohookFrames ?? 0) + (hybridDxgiFrames ?? 0) + (hybridGdiFrames ?? 0) + (hybridVideohookFrames ?? 0) + (hybridGraphicsCaptureFrames ?? 0) + (quartzFrames ?? 0) + (screenCaptureKitFrames ?? 0);
const value17 = (hybridDxgiFramesUnique ?? 0) + (hybridGdiBitBltFramesUnique ?? 0) + (hybridGdiPrintWindowFramesUnique ?? 0) + (hybridVideohookFramesUnique ?? 0) + (hybridGraphicsCaptureFramesUnique ?? 0);
const value21 = (hybridDxgiFramesUnique ?? 0) + (hybridGdiBitBltFramesUnique ?? 0) + (hybridGdiPrintWindowFramesUnique ?? 0) + (hybridVideohookFramesUnique ?? 0) + (hybridGraphicsCaptureFramesUnique ?? 0);
const object2 = {};
let Math = global.Math;
object2.screenshareCapturedFps = Math.max(0, (value7 - value13) / a2);
Math = global.Math;
object2.screenshareCapturedFpsUnique = Math.max(0, (value17 - value21) / a2);
return object2;
}
function updateStats(a0) { // fn#83237, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:3144, offset: 0x01f123cb, size: 570 bytes, params: 2, frame: 44
var r20;
var r19;
var r7;
var r26;
var r28;
var r33;
var Date;
var now;
var property;
var value5;
var property2;
var property3;
var Array;
var isArray;
var value6;
var push;
var shift;
var items3;
var value7;
var value8;
let value = a1;
const value2 = a2;
reducibleJoin2: while (true) {
if (value !== undefined) {
r20 = value;
break reducibleJoin2;
}
r20 = {};
break reducibleJoin2;
}
reducibleJoin4: while (true) {
if (value2 !== undefined) {
r19 = value2;
break reducibleJoin4;
}
Date = global.Date;
now = Date.now;
value = Reflect.apply(now, Date, []);
r19 = value;
break reducibleJoin4;
}
const object2 = {};
const Object = global.Object;
value = Object.entries(a0);
let length = value.length;
const value3 = 0;
if (value3 < length) {
r7 = value3;
reducibleLoop5: while (true) {
property = value[r7];
value5 = env0_7(property, 2);
property = value5[value3];
property2 = value5[1];
property3 = r20[property];
Array = global.Array;
isArray = Array.isArray;
if (Reflect.apply(isArray, Array, [property2])) {
if (typeof property2[value3] === 'object') {
Array = global.Array;
isArray = Array.isArray;
reducibleJoin23: while (true) {
if (Reflect.apply(isArray, Array, [property3])) {
r28 = property3;
break reducibleJoin23;
}
r28 = [];
break reducibleJoin23;
}
items3 = [];
object2[property] = items3;
length = property2.length;
if (value3 < length) {
r26 = value3;
reducibleLoop24: while (true) {
property = r28[r26];
reducibleJoin26: while (true) {
if (typeof property === 'object') {
r33 = property;
break reducibleJoin26;
}
r33 = {};
break reducibleJoin26;
}
push = items3.push;
Reflect.apply(push, items3, [updateStats(property2[r26], r33, r19)]);
value7 = typeof r26 === 'bigint' ? r26 + 1n : +r26 + 1;
length = property2.length;
if (value7 < length) {
r26 = value7;
continue reducibleLoop24;
}
break reducibleLoop24;
}
}
} else {
object2[property] = property2;
}
} else {
value6 = typeof property2;
reducibleJoin27: while (true) {
reducibleJoin10: while (true) {
if (value6 !== 'object') {
if (property in env0_19) {
if (value6 === 'number') {
Array = global.Array;
isArray = Array.isArray;
reducibleJoin13: while (true) {
if (Reflect.apply(isArray, Array, [property3])) {
r26 = property3;
break reducibleJoin13;
}
r26 = [];
break reducibleJoin13;
}
object2[property] = r26;
push = r26.push;
Reflect.apply(push, r26, [{value: property2, time: r19}]);
length = r26.length;
if (length > 600) {
shift = r26.shift;
Reflect.apply(shift, r26, []);
break reducibleJoin27;
}
break reducibleJoin27;
}
break reducibleJoin10;
}
break reducibleJoin10;
}
if (property2 !== null) {
reducibleJoin18: while (true) {
reducibleJoin17: while (true) {
if (typeof property3 !== 'object') {
break reducibleJoin17;
}
if (property3 !== null) {
r28 = property3;
break reducibleJoin18;
}
break reducibleJoin17;
}
r28 = {};
break reducibleJoin18;
}
object2[property] = updateStats(property2, r28, r19);
break reducibleJoin27;
}
if (property in env0_19) {
if (value6 === 'number') {
Array = global.Array;
isArray = Array.isArray;
reducibleJoin13: while (true) {
if (Reflect.apply(isArray, Array, [property3])) {
r26 = property3;
break reducibleJoin13;
}
r26 = [];
break reducibleJoin13;
}
object2[property] = r26;
push = r26.push;
Reflect.apply(push, r26, [{value: property2, time: r19}]);
length = r26.length;
if (length > 600) {
shift = r26.shift;
Reflect.apply(shift, r26, []);
break reducibleJoin27;
}
break reducibleJoin27;
}
break reducibleJoin10;
}
break reducibleJoin10;
}
object2[property] = property2;
break reducibleJoin27;
}
}
value8 = typeof r7 === 'bigint' ? r7 + 1n : +r7 + 1;
length = value.length;
if (value8 < length) {
r7 = value8;
continue reducibleLoop5;
}
break reducibleLoop5;
}
}
return object2;
}
function _fun83238() { // fn#83238, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:1129, offset: 0x01f12605, size: 114 bytes, params: 1, frame: 16
return env0_9(RTCDebugVideoOutputMap, [{key: 'put', value: value_83240}, {key: 'get', value: value_83241}],
[{key: 'empty', value: value_83242}]);
}
function _fun83243(a0) { // fn#83243, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:3731, offset: 0x01f12789, size: 251 bytes, params: 2, frame: 16
const closure = RTCDebugStore;
env0_6(closure, a0);
return env0_9(closure, [{key: 'initialize', value: function() {
this.waitFor(MediaEngineStore, UserStore);
}}, {key: 'getSection', value: value_83246}, {key: 'getInboundStats', value: value_83247}, {key: 'getOutboundStats',
value: value_83249}, {key: 'getAllStats', value: value_83251}, {key: 'getVideoStreams', value: value_83252},
{key: 'shouldRecordNextConnection', value: value_83253}, {key: 'getSimulcastDebugOverride',
value: value_83254}]);
}
function RTC_DEBUG_MODAL_OPEN({section}) { // fn#83255, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:5263, offset: 0x01f12b14, size: 33 bytes, params: 2, frame: 2
env0_16 = section ?? env0_15;
}
function RTC_DEBUG_MODAL_OPEN_REPLAY() { // fn#83258, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:5493, offset: 0x01f12b58, size: 37 bytes, params: 1, frame: 11
(importAll(10866) /* metro dependency 10866: RTCDebugActionCreators */).chooseReplayPath();
}
function RTC_DEBUG_MODAL_OPEN_REPLAY_AT_PATH({path}) { // fn#83259, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:5586, offset: 0x01f12b7d, size: 206 bytes, params: 2, frame: 17
var replayConnection;
const mediaEngine = MediaEngineStore.getMediaEngine();
destroyReplayConnection();
const supports = mediaEngine.supports;
const CONNECTION_REPLAY = Features.CONNECTION_REPLAY;
if (Reflect.apply(supports, mediaEngine, [CONNECTION_REPLAY])) {
if (path.length !== 0) {
replayConnection = mediaEngine.createReplayConnection(MediaEngineContextTypes.DEFAULT, path);
if (replayConnection != null) {
replayConnection.on((require(4406) /* metro dependency 4406: mediaEngine */).BaseConnectionEvent.Video,
_fun83260);
(importDefault(694) /* metro dependency 694: Dispatcher */).wait(_fun83261);
}
}
}
}
function RTC_DEBUG_MODAL_UPDATE_VIDEO_OUTPUT({mediaEngineConnectionId, userId, videoSsrc, streamId}) { // fn#83262, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:6090, offset: 0x01f12ce6, size: 54 bytes, params: 2, frame: 18
env0_20 = env0_20.put(mediaEngineConnectionId, userId, videoSsrc, streamId);
}
function RTC_DEBUG_SET_SIMULCAST_OVERRIDE_83264({userId, context, quality}) { // fn#83264, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:6304, offset: 0x01f12d2f, size: 51 bytes, params: 2, frame: 16
const binding = env0_18;
binding.set(makeSimulcastKey(userId, context), quality);
}
function VOICE_CHANNEL_SELECT_83265({channelId}) { // fn#83265, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:6430, offset: 0x01f12d62, size: 59 bytes, params: 2, frame: 10
var binding;
if (channelId != null) {
setDefaultStats();
binding = env0_18;
binding.clear();
binding = env0_23;
binding.clear();
}
}
function RTC_CONNECTION_VIDEO_83266(a0) { // fn#83266, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:6548, offset: 0x01f12d9d, size: 69 bytes, params: 2, frame: 14
var simulcastKey;
var binding;
if (a0.streamId === null) {
simulcastKey = makeSimulcastKey(a0.userId, a0.context);
binding = env0_18;
binding.set(simulcastKey, SimulcastOverrideQuality.NO_OVERRIDE);
}
}
function MEDIA_ENGINE_CONNECTION_STATS_83267({connectionStats}) { // fn#83267, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:6692, offset: 0x01f12de2, size: 61 bytes, params: 2, frame: 12
const Object = global.Object;
Object.values(MediaEngineContextTypes).forEach(_fun83268);
}
function parseSection(a0) { // fn#83271, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:7584, offset: 0x01f13024, size: 61 bytes, params: 2, frame: 13
let value = a0.split(':');
value = env0_7(value, 2);
return {context: value[0], section: value[1]};
}
function _fun83234(a0) { // fn#83234, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:1872, offset: 0x01f12145, size: 20 bytes, params: 2, frame: 3
env1_17[a0] = {};
}
function RTCDebugVideoOutputMap(a0) { // fn#83239, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:1140, offset: 0x01f12677, size: 36 bytes, params: 2, frame: 13
env1_8(this, RTCDebugVideoOutputMap);
this.state = a0;
}
function value_83240(a0, a1, a2, a3) { // fn#83240, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:1269, offset: 0x01f1269b, size: 156 bytes, params: 5, frame: 19
var value;
var object2;
if (a3 === '') {
object2 = {};
copyDataProperties(object2, this.state, undefined);
value = environment.__proto__;
delete object2[makeStreamKey(a0, a1, a2)];
} else {
object2 = {};
value = environment.__proto__;
object2[makeStreamKey(a0, a1, a2)] = a3;
copyDataProperties(object2, this.state, undefined);
}
value = Object.create(RTCDebugVideoOutputMap.prototype, {constructor: {value: RTCDebugVideoOutputMap}});
const rTCDebugVideoOutputMap = new RTCDebugVideoOutputMap();
return rTCDebugVideoOutputMap instanceof Object ? rTCDebugVideoOutputMap : value;
}
function value_83241(a0, a1, a2) { // fn#83241, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:1483, offset: 0x01f12737, size: 51 bytes, params: 4, frame: 16
const state = this.state;
let value = environment.__proto__;
const property = state[makeStreamKey(a0, a1, a2)];
value = null;
return value != property ? property : value;
}
function value_83242() { // fn#83242, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:1583, offset: 0x01f1276a, size: 31 bytes, params: 1, frame: 11
const value = Object.create(RTCDebugVideoOutputMap.prototype, {constructor: {value: RTCDebugVideoOutputMap}});
const rTCDebugVideoOutputMap = new RTCDebugVideoOutputMap({});
return rTCDebugVideoOutputMap instanceof Object ? rTCDebugVideoOutputMap : value;
}
function RTCDebugStore() { // fn#83244, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:3743, offset: 0x01f12884, size: 113 bytes, params: 1, frame: 20
const value = environment.__proto__;
env1_8(this, RTCDebugStore);
const value3 = env1_5(RTCDebugStore);
return env1_4(this, _isNativeReflectConstruct_83226() ? global.Reflect.construct(value3, arguments,
env1_5(this).constructor) : value3.apply(this, arguments));
}
function value_83247(a0, a1) { // fn#83247, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:4132, offset: 0x01f12913, size: 179 bytes, params: 3, frame: 14
const property = this.getAllStats(a1)[0];
value = undefined;
const r5 = property == null || property.rtp == null ? value : property.rtp.inbound[a0];
const r4 = r5 == null ? value : r5.find(function(a0) {
return a0.type === 'video';
});
const object2 = {};
object2.codec = r4 == null ? value : r4.codec.name;
object2.resolution = r4 == null ? value : r4.resolution;
object2.bitrateEstimate = value;
object2.fps = getLastGraphValue(r4 == null ? value : r4.frameRateRender);
return object2;
}
function value_83249(a0) { // fn#83249, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:4463, offset: 0x01f129c6, size: 215 bytes, params: 2, frame: 17
var environment;
let value = this.getAllStats(a0);
let property = value[0];
const value2 = undefined;
const transport = property == null ? value2 : property.transport;
property = value[0];
const outbound = property == null || property.rtp == null ? value2 : property.rtp.outbound;
const r4 = outbound == null ? value2 : outbound.find(function(a0) {
return a0.type === 'video';
});
const object2 = {};
object2.codec = r4 == null ? value2 : r4.codec.name;
object2.resolution = r4 == null ? value2 : r4.resolution;
value = environment.__proto__;
object2.bitrateEstimate = getLastGraphValue(transport == null ? value2 : transport.availableOutgoingBitrate);
object2.fps = getLastGraphValue(r4 == null ? value2 : r4.frameRateEncode);
return object2;
}
function value_83251() { // fn#83251, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:4881, offset: 0x01f12a9d, size: 53 bytes, params: 1, frame: 12
let value = a0;
const r3 = value !== undefined ? value : MediaEngineContextTypes.DEFAULT;
const Object = global.Object;
const values = Object.values;
value = environment.__proto__;
return Reflect.apply(values, Object, [env1_17[r3]]);
}
function value_83254(a0, a1) { // fn#83254, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:5084, offset: 0x01f12ad2, size: 66 bytes, params: 3, frame: 14
const value = environment.__proto__;
const simulcastKey = makeSimulcastKey(a0, a1);
const binding = env1_18;
return binding.has(simulcastKey) ? env1_18.get(simulcastKey) : SimulcastOverrideQuality.NO_OVERRIDE;
}
function _fun83260(a0, a1, a2, a3) { // fn#83260, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:5828, offset: 0x01f12c4b, size: 118 bytes, params: 5, frame: 17
(importDefault(694) /* metro dependency 694: Dispatcher */).dispatch({type: 'RTC_DEBUG_MODAL_UPDATE_VIDEO_OUTPUT',
mediaEngineConnectionId: env0_0.mediaEngineConnectionId, userId: a0, videoSsrc: a3 ?? 0, streamId: a1 ?? ''});
}
function _fun83261() { // fn#83261, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:6029, offset: 0x01f12cc1, size: 37 bytes, params: 1, frame: 11
const value = environment.__proto__;
return (importAll(10866) /* metro dependency 10866: RTCDebugActionCreators */).open();
}
function _fun83268(a0) { // fn#83268, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:6781, offset: 0x01f12e1f, size: 54 bytes, params: 2, frame: 12
const env0_0 = a0;
connectionStats.filter(_fun83269).forEach(_fun83270);
}
function _fun83269({context}) { // fn#83269, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:6795, offset: 0x01f12e55, size: 21 bytes, params: 2, frame: 2
return context === env0_0;
}
function _fun83270({stats}, a1) { // fn#83270, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11051:6827, offset: 0x01f12e6a, size: 442 bytes, params: 3, frame: 24
var screenshare;
var r4;
var binding;
var value2;
var value3;
var value4;
var property2;
var property3;
var value5;
var value6;
var value7;
var value8;
var property5;
var value9;
var object3;
let object4 = {};
object4.context = env0_0;
object4.stats = stats;
object4.index = a1;
const context = object4.context;
stats = object4.stats;
const index = object4.index;
const property = env2_17[context];
if (stats != null) {
binding = env2_16;
value2 = binding.split(':');
value3 = undefined;
value4 = env2_7(value2, 3);
property2 = value4[0];
property3 = value4[1];
if (property2 === context) {
if (global.parseInt(value4[2]) === index) {
if (UserStore.getUser(property3) != null) {
value5 = global.Object.keys(stats.rtp.inbound);
if (value5.includes(property3)) {
}
}
}
}
value6 = global.Date.now();
screenshare = stats.screenshare;
if (screenshare == null) {
r4 = stats;
} else {
value7 = '' + context + ':' + index;
binding = env2_23;
value8 = binding.get(value7);
property5 = property[index];
screenshare = property5 == null ? value3 : property5.screenshare;
binding = env2_23;
binding.set(value7, value6);
if (value8 == null) {
r4 = stats;
} else if (screenshare == null) {
r4 = stats;
} else {
value9 = (value6 - value8) / 1000;
if (value9 > 0) {
object4 = {};
copyDataProperties(object4, stats, undefined);
object3 = {};
copyDataProperties(object3, stats.screenshare, undefined);
copyDataProperties(object3, computeScreenshareFps(stats.screenshare, screenshare, value9),
undefined);
object4['screenshare'] = object3;
r4 = object4;
} else {
r4 = stats;
}
}
}
property[index] = updateStats(r4, property[index], value6);
} else {
delete property[index];
}
}