decord/source/4223__createForOfIteratorHelperLoose.js
2026-07-20 16:05:17 +00:00

309 lines
10 KiB
JavaScript

// Module ID: 4223
// Function ID: 36997
// Name: _createForOfIteratorHelperLoose
// Dependencies: []
// Exports: default
// Module 4223 (_createForOfIteratorHelperLoose)
function _createForOfIteratorHelperLoose(@@iterator) {
let arg1 = Symbol_iterator;
@@iterator = "undefined" !== typeof Symbol;
if (Symbol_iterator) {
const _Symbol = Symbol;
@@iterator = Symbol_iterator[Symbol.iterator];
}
if (!Symbol_iterator) {
@@iterator = Symbol_iterator[Symbol.iterator];
}
if (Symbol_iterator) {
const iter = Symbol_iterator.call(Symbol_iterator);
const next = iter.next;
return next.bind(iter);
} else {
const _Array = Array;
let tmp = Symbol_iterator;
if (!Array.isArray(Symbol_iterator)) {
let tmp2;
if (Symbol_iterator) {
if ("string" === typeof Symbol_iterator) {
tmp2 = _arrayLikeToArray(Symbol_iterator, undefined);
} else {
const toString = {}.toString;
const substr = toString.call(Symbol_iterator).slice(8, -1);
let name = substr;
if (tmp3) {
name = Symbol_iterator.constructor.name;
}
if ("Map" !== name) {
if ("Set" !== name) {
if ("Arguments" === name) {
let arr = _arrayLikeToArray(Symbol_iterator, undefined);
} else {
const obj = /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/;
}
}
tmp2 = arr;
}
const _Array2 = Array;
arr = Array.from(Symbol_iterator);
const callResult = toString.call(Symbol_iterator);
const tmp3 = "Object" === substr && Symbol_iterator.constructor;
}
}
tmp = tmp2;
if (!tmp2) {
const _TypeError = TypeError;
const typeError = new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
throw typeError;
}
}
if (tmp) {
arg1 = tmp;
}
let closure_1 = 0;
return () => {
if (closure_1 >= tmp.length) {
let obj = { done: true };
} else {
obj = { done: false };
closure_1 = tmp3 + 1;
obj.value = tmp[+closure_1];
}
return obj;
};
}
}
function _arrayLikeToArray(arg0, arg1) {
let length;
if (tmp) {
length = arg0.length;
}
const ArrayResult = Array(length);
for (let num = 0; num < length; num = num + 1) {
ArrayResult[num] = arg0[num];
}
return ArrayResult;
}
function releaseDirectVideoStream(arg0) {
const value = map.get(arg0);
if (tmp) {
const voiceEngine = arg1(dependencyMap[5]).getVoiceEngine();
const result = voiceEngine.removeDirectVideoOutputSink(arg0);
map.delete(arg0);
const obj2 = arg1(dependencyMap[5]);
}
}
let closure_3 = importDefault(dependencyMap[0]);
let closure_4 = importDefault(dependencyMap[1]);
let closure_5 = importAll(dependencyMap[2]);
const jsx = arg1(dependencyMap[3]).jsx;
const logger = new arg1(dependencyMap[4]).Logger("DirectVideo");
logger.enableNativeLogger(true);
let closure_8 = () => {
class RefCountedStream {
constructor(arg0) {
tmp = closure_3(this, RefCountedStream);
this.refcount = 1;
this.stream = window.createDiscordStream(arg0);
return;
}
}
const arg1 = RefCountedStream;
let obj = {
key: "addref",
value() {
this.refcount = this.refcount + 1;
}
};
const items = [obj, ];
obj = {
key: "release",
value() {
this.refcount = this.refcount - 1;
return 0 === this.refcount;
}
};
items[1] = obj;
return callback(RefCountedStream, items);
}();
const map = new Map();
const result = arg1(dependencyMap[7]).fileFinishedImporting("../discord_common/js/packages/media-engine/native/ui/DirectVideo.tsx");
export default function DirectVideo(streamId, onContainerResized) {
streamId = streamId.streamId;
onContainerResized = streamId;
let flag = streamId.paused;
if (flag === undefined) {
flag = false;
}
const importDefault = flag;
const onReady = streamId.onReady;
const dependencyMap = onReady;
const onResize = streamId.onResize;
let closure_3 = onResize;
let flag2 = streamId.reportContainerResized;
if (flag2 === undefined) {
flag2 = true;
}
let closure_4 = flag2;
let obj = { maxMediaWidth: null, maxMediaHeight: "LOCAL_PAYMENT_START_PAYMENT_MISSING_REQUIRED_OPTION", hideActionSheet: "Missing required option for startPayment.", isDismissable: null, confirmText: "LOCAL_PAYMENT_START_PAYMENT_DEFERRED_PAYMENT_FAILED", borderBottomWidth: "LocalPayment startPayment deferred payment failed." };
Object.setPrototypeOf(null);
const merged = Object.assign(streamId, obj);
let React;
let jsx;
let closure_7;
let closure_8;
const ref = React.useRef(null);
React = ref;
jsx = React.useRef(null);
closure_7 = React.useRef({ aze: false, azj: true });
obj = { streamId, paused: flag, onReady, onResize, onContainerResized };
closure_8 = React.useRef(obj);
const items = [flag2];
const layoutEffect = React.useLayoutEffect(() => {
const current = ref.current;
const resizeObserver = new globalThis.ResizeObserver((arg0) => {
let iter3;
if (closure_4) {
const tmp3 = callback(arg0);
const iter = tmp3();
let iter2 = iter;
if (!iter.done) {
do {
let value = iter2.value;
let tmp6 = closure_6;
if (value.target === closure_6.current) {
let _window = window;
let result = window.devicePixelRatio * value.target.clientWidth;
let _window2 = window;
let result1 = window.devicePixelRatio * value.target.clientHeight;
let tmp14 = closure_8;
let tmp15 = result;
let tmp16 = result1;
if (null != closure_8.current.onContainerResized) {
let tmp7 = closure_8;
let current = closure_8.current;
let tmp8 = closure_8;
let onContainerResizedResult = current.onContainerResized(closure_8.current.streamId, result, result1);
let tmp10 = result;
let tmp11 = result1;
}
}
iter3 = tmp3();
iter2 = iter3;
} while (!iter3.done);
}
}
});
if (null != current) {
const _document = document;
const element = <video />;
element.style.display = "block";
element.style.width = "100%";
element.style.height = "100%";
element.autoplay = true;
element.muted = true;
const listener = element.addEventListener("pause", function handlePause() {
let paused = closure_8.current.paused;
if (!paused) {
const current = ref.current;
paused = null == current;
const obj = current;
}
if (!paused) {
obj.play();
}
});
const listener1 = element.addEventListener("resize", function handleResize() {
let height;
let width;
const current = ref.current;
let videoWidth;
({ width, height } = ref2.current);
if (null != current) {
videoWidth = current.videoWidth;
}
let num = 0;
if (null != videoWidth) {
num = videoWidth;
}
const current2 = ref.current;
let videoHeight;
if (null != current2) {
videoHeight = current2.videoHeight;
}
let num2 = 0;
if (null != videoHeight) {
num2 = videoHeight;
}
if (width !== num) {
const obj = { width: num, height: num2 };
if (null != closure_8.current.onResize) {
const current3 = closure_8.current;
current3.onResize(obj);
}
ref2.current = obj;
}
});
const listener2 = element.addEventListener("canplaythrough", function handleReady(d) {
ref2.info("handleReady for " + closure_8.current.streamId + ", have onReady callback = " + null != closure_8.current.onReady);
if (null != closure_8.current.onReady) {
const current = closure_8.current;
current.onReady();
}
});
const _HermesInternal2 = HermesInternal;
closure_7.info("create video element for " + ctor.current.streamId + ", readyState=" + element.readyState);
if (element.readyState > 3) {
const _HermesInternal = HermesInternal;
closure_7.error("video element for " + ctor.current.streamId + " was ready before attached");
}
current.appendChild(element);
resizeObserver.disconnect();
resizeObserver.observe(element);
closure_6.current = element;
}
}, items);
const effect = React.useEffect(() => {
ctor.current.streamId = streamId;
ctor.current.paused = flag;
ctor.current.onReady = onReady;
ctor.current.onResize = onResize;
});
const items1 = [flag, streamId];
const effect1 = React.useEffect(() => {
const current = ref.current;
const streamId = current;
if (null != current) {
if (flag) {
if (null != current.srcObject) {
current.srcObject = null;
callback(streamId);
}
} else {
const _HermesInternal = HermesInternal;
closure_7.info("attaching srcObject for " + streamId);
let value = store.get(streamId);
if (null == value) {
const prototype = ctor.prototype;
const tmp11 = new ctor(tmp2);
const voiceEngine = streamId(onReady[5]).getVoiceEngine();
const result = voiceEngine.addDirectVideoOutputSink(tmp2);
const result1 = store.set(tmp2, tmp11);
value = tmp11;
const obj2 = streamId(onReady[5]);
} else {
value.addref();
}
current.srcObject = value.stream;
return () => {
callback(current);
current.srcObject = null;
};
}
}
}, items1);
obj = { className: importDefault(dependencyMap[6])("media-engine-video", streamId.className), ref };
const merged1 = Object.assign(merged);
return <div {...obj} />;
};