@yume-chan/scrcpy
Version:
TypeScript implementation of Scrcpy.
41 lines • 1.44 kB
JavaScript
import { TransformStream } from "@yume-chan/stream-extra";
import { ScrcpyOptions1_21 } from "./1_21.js";
import { ScrcpyOptions1_22 } from "./1_22/index.js";
import { ScrcpyOptions } from "./types.js";
const KEYFRAME_PTS = 1n << 62n;
export class ScrcpyOptions1_23 extends ScrcpyOptions {
static DEFAULTS = {
...ScrcpyOptions1_22.DEFAULTS,
cleanup: true,
};
get defaults() {
return ScrcpyOptions1_23.DEFAULTS;
}
constructor(init) {
super(ScrcpyOptions1_22, init, ScrcpyOptions1_23.DEFAULTS);
}
serialize() {
return ScrcpyOptions1_21.serialize(this.value, this.defaults);
}
createMediaStreamTransformer() {
const stream = super.createMediaStreamTransformer();
return {
writable: stream.writable,
readable: stream.readable.pipeThrough(new TransformStream({
transform(packet, controller) {
if (packet.type !== "data") {
controller.enqueue(packet);
return;
}
if (packet.pts !== undefined &&
packet.pts & KEYFRAME_PTS) {
packet.keyframe = true;
packet.pts &= ~KEYFRAME_PTS;
}
controller.enqueue(packet);
},
})),
};
}
}
//# sourceMappingURL=1_23.js.map