decord/source/4272__isNativeReflectConstruct.js
2026-07-20 16:05:17 +00:00

523 lines
16 KiB
JavaScript

// Module ID: 4272
// Function ID: 37360
// Name: _isNativeReflectConstruct
// Dependencies: []
// Module 4272 (_isNativeReflectConstruct)
function _isNativeReflectConstruct() {
let closure_0 = !valueOf.call(Reflect.construct(Boolean, [], () => {
}));
function _isNativeReflectConstruct() {
return closure_0;
}
const result = _isNativeReflectConstruct();
}
let closure_3 = importDefault(dependencyMap[0]);
let closure_4 = importDefault(dependencyMap[1]);
let closure_5 = importDefault(dependencyMap[2]);
let closure_6 = importDefault(dependencyMap[3]);
let closure_7 = importDefault(dependencyMap[4]);
let closure_8 = importDefault(dependencyMap[5]);
({ ConnectionStates: closure_9, DEFAULT_VOICE_BITRATE: closure_10, MediaTypes: closure_11, ResolutionTypes: closure_12, MediaEngineContextTypes: closure_13, VIDEO_QUALITY_FRAMERATE: closure_14, SIMULCAST_HQ_QUALITY: closure_15 } = arg1(dependencyMap[6]));
let closure_16 = 0;
const tmp2 = arg1(dependencyMap[6]);
const tmp3 = (arg0) => {
class BaseConnection {
constructor(arg0, arg1) {
self = this;
tmp = closure_4(this, BaseConnection);
obj = closure_7(BaseConnection);
tmp2 = closure_6;
if (closure_17()) {
tmp4 = globalThis;
_Reflect = Reflect;
tmp5 = closure_7;
constructResult = Reflect.construct(obj, [], closure_7(self).constructor);
} else {
constructResult = obj.apply(self, undefined);
}
tmp2Result = tmp2(self, constructResult);
tmp7 = +closure_16;
closure_16 = tmp7 + 1;
tmp2Result.mediaEngineConnectionId = `WebRTC-${tmp7}`;
tmp2Result.destroyed = false;
tmp2Result.audioSSRC = 0;
tmp2Result.videoSSRC = 0;
tmp2Result.selfDeaf = false;
tmp2Result.selfMute = false;
tmp2Result.localMutes = {};
tmp2Result.disabledLocalVideos = {};
tmp2Result.localVolumes = {};
tmp2Result.isActiveOutputSinksEnabled = false;
map = new Map();
tmp2Result.activeOutputSinks = map;
tmp2Result.videoSupported = false;
tmp2Result.useElectronVideo = false;
tmp2Result.spatialAudioEnabled = false;
tmp2Result.voiceBitrate = closure_10;
tmp2Result.remoteSinkWantsMaxFramerate = closure_14;
set = new Set();
tmp2Result.wantsPriority = set;
tmp2Result.localSpeakingFlags = {};
tmp2Result.videoReady = false;
tmp2Result.videoStreamParameters = [];
tmp2Result.remoteVideoSinkWants = { any: 100 };
tmp2Result.localVideoSinkWants = { any: 100 };
tmp2Result.connectionState = closure_9.CONNECTING;
tmp2Result.onDesktopEncodingOptionsSet = () => {
};
set1 = new Set();
tmp2Result.experimentFlags = set1;
tmp2Result.calcMaxBitrateFunc = () => null;
tmp2Result.context = arg0;
tmp2Result.userId = arg1;
videoQualityManager = new f37398(closure_2[7]).VideoQualityManager(arg0, tmp2Result);
tmp2Result.videoQualityManager = videoQualityManager;
_default = new f37398(closure_2[8]).default(tmp2Result, tmp2Result.videoQualityManager);
tmp2Result.framerateReducer = _default;
return tmp2Result;
}
}
const importDefault = BaseConnection;
callback3(BaseConnection, arg0);
let obj = {
key: "destroy",
value() {
this.destroyed = true;
const framerateReducer = this.framerateReducer;
framerateReducer.destroy();
this.setConnectionState(constants.DISCONNECTED);
this.emit(callback(closure_2[9]).BaseConnectionEvent.Destroy, this);
this.removeAllListeners();
}
};
const items = [obj, , , , , , , , , , , , , , , , , , , , , , , , , , , , ];
obj = {
key: "getLocalMute",
value(arg0) {
return this.localMutes[arg0] || false;
}
};
items[1] = obj;
obj = {
key: "getLocalVideoDisabled",
value(arg0) {
const tmp = this.disabledLocalVideos[arg0];
return null != tmp && tmp;
}
};
items[2] = obj;
items[3] = {
key: "setLocalVideoDisabled",
value(arg0, arg1) {
this.disabledLocalVideos[arg0] = arg1;
this.emit(callback(closure_2[9]).BaseConnectionEvent.LocalVideoDisabled, arg0, arg1);
}
};
items[4] = {
key: "getHasActiveVideoOutputSink",
value(arg0) {
const activeOutputSinks = this.activeOutputSinks;
let hasItem = activeOutputSinks.has(arg0);
if (hasItem) {
const activeOutputSinks2 = this.activeOutputSinks;
hasItem = activeOutputSinks2.get(arg0).size > 0;
}
return hasItem;
}
};
items[5] = {
key: "setHasActiveVideoOutputSink",
value(arg0, arg1, arg2) {
const self = this;
const activeOutputSinks = this.activeOutputSinks;
const hasActiveVideoOutputSink = this.getHasActiveVideoOutputSink(arg0);
let set = activeOutputSinks.get(arg0);
if (null == set) {
const _Set = Set;
set = new Set();
}
if (arg1) {
set.add(arg2);
} else {
set.delete(arg2);
}
const activeOutputSinks2 = self.activeOutputSinks;
const result = activeOutputSinks2.set(arg0, set);
const hasActiveVideoOutputSink1 = self.getHasActiveVideoOutputSink(arg0);
self.isActiveOutputSinksEnabled = true;
if (hasActiveVideoOutputSink !== hasActiveVideoOutputSink1) {
self.emit(callback(closure_2[9]).BaseConnectionEvent.ActiveSinksChange, arg0, hasActiveVideoOutputSink1);
}
}
};
items[6] = {
key: "getActiveOutputSinkTrackingEnabled",
value() {
return this.isActiveOutputSinksEnabled;
}
};
items[7] = {
key: "setUseElectronVideo",
value(useElectronVideo) {
this.useElectronVideo = useElectronVideo;
}
};
items[8] = {
key: "setClipRecordUser",
value() {
}
};
items[9] = {
key: "setViewerSideClip",
value() {
}
};
items[10] = {
key: "setRemoteAudioHistory",
value() {
}
};
items[11] = {
key: "setClipsKeyFrameInterval",
value() {
}
};
items[12] = {
key: "setQualityDecoupling",
value() {
}
};
items[13] = {
key: "presentDesktopSourcePicker",
value() {
}
};
items[14] = {
key: "getStreamParameters",
value() {
return BaseConnection(closure_2[10])(this.videoStreamParameters);
}
};
items[15] = {
key: "setExperimentFlag",
value(arg0, arg1) {
const experimentFlags = this.experimentFlags;
if (arg1) {
experimentFlags.add(arg0);
} else {
experimentFlags.delete(arg0);
}
}
};
items[16] = {
key: "setConnectionState",
value(connectionState) {
const logger = this.logger;
logger.info("Connection state change: " + this.connectionState + " => " + connectionState);
this.connectionState = connectionState;
this.emit(callback(closure_2[9]).BaseConnectionEvent.ConnectionStateChange, this.connectionState);
}
};
items[17] = {
key: "updateVideoQuality",
value(arg0) {
let bitrateTarget;
let bitrateTarget2;
let constraints;
let constraints2;
let quality;
let quality2;
const self = this;
const videoStreamParameters = this.videoStreamParameters;
let num = videoStreamParameters.findIndex((quality) => 100 === quality.quality);
if (-1 === num) {
num = 0;
}
const result = self.applyQualityConstraints({}, self.videoStreamParameters[num].ssrc);
({ quality, constraints } = result);
const tmp2 = BaseConnection(closure_2[10])(self.videoStreamParameters);
if (null != quality) {
({ bitrateMax: tmp2[num].maxBitrate, bitrateMin: tmp2[num].minBitrate, bitrateTarget } = quality);
let num2 = 0;
if (null != bitrateTarget) {
num2 = bitrateTarget;
}
tmp2[num].targetBitrate = num2;
if (null != quality.encode) {
tmp2[num].maxPixelCount = quality.encode.pixelCount;
tmp2[num].maxFrameRate = quality.encode.framerate;
}
}
self.videoStreamParameters = tmp2;
let tmp3 = quality;
let tmp4 = constraints;
let num3 = 0;
let tmp6 = quality;
let tmp7 = constraints;
if (0 < self.videoStreamParameters.length) {
do {
let tmp8 = tmp3;
let tmp9 = tmp4;
let tmp10 = tmp5;
if (num3 !== num) {
let result1 = self.applyQualityConstraints({}, self.videoStreamParameters[num3].ssrc);
({ quality: quality2, constraints: constraints2 } = result1);
if (null != quality2) {
({ bitrateMax: self.videoStreamParameters[num3].maxBitrate, bitrateMin: self.videoStreamParameters[num3].minBitrate, bitrateTarget: bitrateTarget2 } = quality2);
let num4 = 0;
if (null != bitrateTarget2) {
num4 = bitrateTarget2;
}
self.videoStreamParameters[num3].targetBitrate = num4;
let tmp5 = bitrateTarget2;
if (null != quality2.encode) {
self.videoStreamParameters[num3].maxPixelCount = quality2.encode.pixelCount;
self.videoStreamParameters[num3].maxFrameRate = quality2.encode.framerate;
tmp5 = bitrateTarget2;
}
}
tmp8 = tmp3;
tmp9 = tmp4;
tmp10 = tmp5;
let tmp11 = quality2;
let tmp12 = constraints2;
if (100 === self.videoStreamParameters[num3].quality) {
tmp8 = quality2;
tmp9 = constraints2;
tmp10 = tmp5;
let tmp13 = quality2;
let tmp14 = constraints2;
}
}
num3 = num3 + 1;
tmp3 = tmp8;
tmp4 = tmp9;
tmp5 = tmp10;
tmp6 = tmp8;
tmp7 = tmp9;
} while (num3 < self.videoStreamParameters.length);
}
tmp7.streamParameters = BaseConnection(closure_2[10])(self.videoStreamParameters);
const prop = self.videoStreamParameters;
const items = [
...prop.map((maxPixelCount) => {
maxPixelCount = maxPixelCount.maxPixelCount;
let num = 0;
if (null != maxPixelCount) {
num = maxPixelCount;
}
return num;
})
];
tmp7.remoteSinkWantsPixelCount = Math.max.apply(items);
if (null != arg0) {
let obj = BaseConnection(closure_2[11])(tmp7, arg0);
} else {
obj = {};
const merged = Object.assign(tmp7);
}
const logger = self.logger;
logger.verbose("updateVideoQuality: " + JSON.stringify(obj));
const result2 = self.updateVideoQualityCore(obj, tmp6);
}
};
items[18] = {
key: "applyVideoQualityMode",
value(arg0) {
const self = this;
if (this.context === constants2.DEFAULT) {
const videoQualityManager = self.videoQualityManager;
videoQualityManager.setQualityOverwrite(callback(closure_2[7]).VIDEO_QUALITY_MODES_TO_OVERWRITES[arg0]);
self.updateVideoQuality();
}
}
};
items[19] = {
key: "overwriteQualityForTesting",
value(arg0) {
const videoQualityManager = this.videoQualityManager;
videoQualityManager.setQualityOverwrite(arg0);
this.updateVideoQuality();
}
};
items[20] = {
key: "applyQualityConstraints",
value() {
let obj = arg0;
if (arg0 === undefined) {
obj = {};
}
const videoQualityManager = this.videoQualityManager;
return videoQualityManager.applyQualityConstraints(obj, arg1);
}
};
items[21] = {
key: "initializeStreamParameters",
value(arr) {
let closure_0 = this;
const found = arr.filter((type) => {
let tmp = type.type === constants.VIDEO;
if (!tmp) {
tmp = type.type === constants.SCREEN;
}
if (tmp) {
tmp = "string" === typeof type.rid;
}
return tmp;
});
this.videoStreamParameters = found.map((ssrc) => {
const videoQualityManager = self.videoQualityManager;
let quality = videoQualityManager.getQuality(ssrc.ssrc);
let obj = { type: ssrc.type, active: ssrc.active, rid: ssrc.rid, ssrc: ssrc.ssrc, rtxSsrc: ssrc.rtxSsrc, quality: ssrc.quality };
quality = ssrc.quality;
let num = 100;
if (null != quality) {
num = quality;
}
if (num < 100) {
let bitrateMax = quality.bitrateMax / 4;
} else {
bitrateMax = quality.bitrateMax;
}
obj.maxBitrate = bitrateMax;
const capture = quality.capture;
let framerate;
if (null != capture) {
framerate = capture.framerate;
}
obj.maxFrameRate = framerate;
obj = { type: constants2.FIXED };
const capture2 = quality.capture;
let width;
if (null != capture2) {
width = capture2.width;
}
obj.width = width;
const capture3 = quality.capture;
let height;
if (null != capture3) {
height = capture3.height;
}
obj.height = height;
obj.maxResolution = obj;
return obj;
});
}
};
items[22] = {
key: "getLocalWant",
value(arg0) {
let tmp = arg0;
const self = this;
let closure_0 = arg0;
const videoStreamParameters = this.videoStreamParameters;
let someResult = videoStreamParameters.some((ssrc) => {
let tmp = ssrc.ssrc === ssrc;
if (tmp) {
tmp = ssrc.quality === closure_15;
}
return tmp;
});
if (!someResult) {
someResult = undefined === tmp;
}
if (null == tmp) {
const first = self.videoStreamParameters[0];
let ssrc;
if (null != first) {
ssrc = first.ssrc;
}
tmp = ssrc;
}
let num2 = 0;
if (null != tmp) {
num2 = tmp;
}
if (null != self.remoteVideoSinkWants[num2]) {
if (tmp6 > 0) {
return tmp6;
}
}
let any = self.remoteVideoSinkWants.any;
if (null != any) {
return any;
}
let num3 = 0;
if (self.context === constants2.DEFAULT || someResult) {
num3 = 100;
}
any = num3;
}
};
items[23] = {
key: "getRemoteVideoSinkWants",
value(arg0) {
return this.remoteVideoSinkWants[arg0];
}
};
items[24] = {
key: "getRemoteVideoSinkPixelCount",
value(arg0) {
let num = 0;
if (undefined !== arg0) {
const self = this;
const pixelCounts = this.remoteVideoSinkWants.pixelCounts;
let tmp2;
if (null != pixelCounts) {
tmp2 = pixelCounts[arg0];
}
let num2 = 0;
if (null != tmp2) {
num2 = tmp2;
}
num = num2;
}
return num;
}
};
const obj23 = { key: "emitStats" };
let closure_0 = callback(async function() {
const self = this;
const tmp = yield self.getStats();
if (null != tmp) {
self.emit(callback(closure_2[9]).BaseConnectionEvent.Stats, tmp);
}
return tmp;
});
obj23.value = function emitStats() {
return callback(...arguments);
};
items[25] = obj23;
items[26] = {
key: "getSpatialAudioEnabled",
value() {
return this.context === constants2.DEFAULT && this.spatialAudioEnabled;
}
};
items[27] = {
key: "setSpatialAudioEnabled",
value(spatialAudioEnabled) {
this.spatialAudioEnabled = spatialAudioEnabled;
}
};
items[28] = {
key: "setCalcMaxBitrateFunc",
value(calcMaxBitrateFunc) {
this.calcMaxBitrateFunc = calcMaxBitrateFunc;
}
};
return callback2(BaseConnection, items);
}(importDefault(dependencyMap[12]));
const result = arg1(dependencyMap[13]).fileFinishedImporting("../discord_common/js/packages/media-engine/BaseConnection.tsx");
export default tmp3;
export const BaseConnectionEvent = arg1(dependencyMap[9]).BaseConnectionEvent;