@hyperframes/engine 0.7.59 → 0.7.61
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -4
- package/dist/config.d.ts +95 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +131 -16
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/services/audioMixer.d.ts.map +1 -1
- package/dist/services/audioMixer.js +38 -3
- package/dist/services/audioMixer.js.map +1 -1
- package/dist/services/browserLeasePool.d.ts +48 -0
- package/dist/services/browserLeasePool.d.ts.map +1 -0
- package/dist/services/browserLeasePool.js +210 -0
- package/dist/services/browserLeasePool.js.map +1 -0
- package/dist/services/browserManager.d.ts +6 -7
- package/dist/services/browserManager.d.ts.map +1 -1
- package/dist/services/browserManager.js +134 -177
- package/dist/services/browserManager.js.map +1 -1
- package/dist/services/chunkEncoder.d.ts.map +1 -1
- package/dist/services/chunkEncoder.js +45 -134
- package/dist/services/chunkEncoder.js.map +1 -1
- package/dist/services/frameCapture.d.ts +38 -1
- package/dist/services/frameCapture.d.ts.map +1 -1
- package/dist/services/frameCapture.js +119 -8
- package/dist/services/frameCapture.js.map +1 -1
- package/dist/services/pageNavigationTimeoutErrorHint.d.ts +79 -0
- package/dist/services/pageNavigationTimeoutErrorHint.d.ts.map +1 -0
- package/dist/services/pageNavigationTimeoutErrorHint.js +112 -0
- package/dist/services/pageNavigationTimeoutErrorHint.js.map +1 -0
- package/dist/services/parallelCoordinator.d.ts +21 -0
- package/dist/services/parallelCoordinator.d.ts.map +1 -1
- package/dist/services/parallelCoordinator.js +40 -1
- package/dist/services/parallelCoordinator.js.map +1 -1
- package/dist/services/protocolTimeoutErrorHint.d.ts +28 -0
- package/dist/services/protocolTimeoutErrorHint.d.ts.map +1 -0
- package/dist/services/protocolTimeoutErrorHint.js +45 -0
- package/dist/services/protocolTimeoutErrorHint.js.map +1 -0
- package/dist/services/streamingEncoder.d.ts.map +1 -1
- package/dist/services/streamingEncoder.js +23 -58
- package/dist/services/streamingEncoder.js.map +1 -1
- package/dist/services/systemMemory.d.ts.map +1 -1
- package/dist/services/systemMemory.js +4 -1
- package/dist/services/systemMemory.js.map +1 -1
- package/dist/services/videoFrameExtractor.d.ts +4 -5
- package/dist/services/videoFrameExtractor.d.ts.map +1 -1
- package/dist/services/videoFrameExtractor.js +57 -112
- package/dist/services/videoFrameExtractor.js.map +1 -1
- package/dist/types.d.ts +28 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/ffmpegBinaries.d.ts +2 -2
- package/dist/utils/ffmpegBinaries.d.ts.map +1 -1
- package/dist/utils/ffmpegBinaries.js +8 -82
- package/dist/utils/ffmpegBinaries.js.map +1 -1
- package/dist/utils/ffprobe.d.ts +3 -1
- package/dist/utils/ffprobe.d.ts.map +1 -1
- package/dist/utils/ffprobe.js +35 -42
- package/dist/utils/ffprobe.js.map +1 -1
- package/dist/utils/gpuEncoder.d.ts.map +1 -1
- package/dist/utils/gpuEncoder.js +32 -52
- package/dist/utils/gpuEncoder.js.map +1 -1
- package/dist/utils/gpuParityDiff.d.ts +142 -0
- package/dist/utils/gpuParityDiff.d.ts.map +1 -0
- package/dist/utils/gpuParityDiff.js +205 -0
- package/dist/utils/gpuParityDiff.js.map +1 -0
- package/dist/utils/managedChildProcess.d.ts +50 -0
- package/dist/utils/managedChildProcess.d.ts.map +1 -0
- package/dist/utils/managedChildProcess.js +148 -0
- package/dist/utils/managedChildProcess.js.map +1 -0
- package/dist/utils/processTracker.js +1 -1
- package/dist/utils/runFfmpeg.d.ts +3 -0
- package/dist/utils/runFfmpeg.d.ts.map +1 -1
- package/dist/utils/runFfmpeg.js +16 -50
- package/dist/utils/runFfmpeg.js.map +1 -1
- package/package.json +3 -2
package/dist/utils/ffprobe.js
CHANGED
|
@@ -3,39 +3,35 @@ import { spawn } from "child_process";
|
|
|
3
3
|
import { readFileSync } from "fs";
|
|
4
4
|
import { extname } from "path";
|
|
5
5
|
import { FFPROBE_PATH_ENV, getFfprobeBinary } from "./ffmpegBinaries.js";
|
|
6
|
+
import { ManagedChildProcess } from "./managedChildProcess.js";
|
|
7
|
+
import { trackChildProcess } from "./processTracker.js";
|
|
6
8
|
/** Spawn ffprobe with given args, return stdout. Throws on non-zero exit or missing binary. */
|
|
7
|
-
function runFfprobe(args) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
stdout += data.toString();
|
|
15
|
-
});
|
|
16
|
-
proc.stderr.on("data", (data) => {
|
|
17
|
-
stderr += data.toString();
|
|
18
|
-
});
|
|
19
|
-
proc.on("close", (code) => {
|
|
20
|
-
if (code !== 0) {
|
|
21
|
-
reject(new Error(`[FFmpeg] ffprobe exited with code ${code}: ${stderr}`));
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
resolve(stdout);
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
proc.on("error", (err) => {
|
|
28
|
-
if (err.code === "ENOENT") {
|
|
29
|
-
const configured = process.env[FFPROBE_PATH_ENV]?.trim();
|
|
30
|
-
reject(new Error(configured
|
|
31
|
-
? `[FFmpeg] ffprobe not found at ${FFPROBE_PATH_ENV}="${configured}". Please install FFmpeg.`
|
|
32
|
-
: "[FFmpeg] ffprobe not found. Please install FFmpeg."));
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
reject(err);
|
|
36
|
-
}
|
|
37
|
-
});
|
|
9
|
+
async function runFfprobe(args, signal) {
|
|
10
|
+
const command = getFfprobeBinary();
|
|
11
|
+
const proc = spawn(command, args);
|
|
12
|
+
trackChildProcess(proc);
|
|
13
|
+
let stdout = "";
|
|
14
|
+
proc.stdout.on("data", (data) => {
|
|
15
|
+
stdout += data.toString();
|
|
38
16
|
});
|
|
17
|
+
const managed = new ManagedChildProcess(proc, {
|
|
18
|
+
signal,
|
|
19
|
+
deadlineAtMs: Date.now() + 30_000,
|
|
20
|
+
});
|
|
21
|
+
const outcome = await managed.wait();
|
|
22
|
+
if (outcome.reason === "spawn_error") {
|
|
23
|
+
if (outcome.error?.code === "ENOENT") {
|
|
24
|
+
const configured = process.env[FFPROBE_PATH_ENV]?.trim();
|
|
25
|
+
throw new Error(configured
|
|
26
|
+
? `[FFmpeg] ffprobe not found at ${FFPROBE_PATH_ENV}="${configured}". Please install FFmpeg.`
|
|
27
|
+
: "[FFmpeg] ffprobe not found. Please install FFmpeg.");
|
|
28
|
+
}
|
|
29
|
+
throw outcome.error ?? new Error(outcome.stderr);
|
|
30
|
+
}
|
|
31
|
+
if (outcome.reason !== "exit" || outcome.exitCode !== 0) {
|
|
32
|
+
throw new Error(`[FFmpeg] ffprobe ${outcome.reason} with code ${outcome.exitCode}: ${outcome.stderr}`);
|
|
33
|
+
}
|
|
34
|
+
return stdout;
|
|
39
35
|
}
|
|
40
36
|
function parseProbeJson(stdout) {
|
|
41
37
|
try {
|
|
@@ -254,20 +250,15 @@ export async function extractMediaMetadata(filePath) {
|
|
|
254
250
|
* `extractMediaMetadata`.
|
|
255
251
|
*/
|
|
256
252
|
export const extractVideoMetadata = extractMediaMetadata;
|
|
257
|
-
export async function extractAudioMetadata(filePath) {
|
|
258
|
-
|
|
253
|
+
export async function extractAudioMetadata(filePath, options) {
|
|
254
|
+
// A caller-owned abort signal cannot safely share a cached in-flight probe:
|
|
255
|
+
// cancelling one consumer would also cancel unrelated consumers. Signal-bound
|
|
256
|
+
// probes therefore bypass the process-promise cache.
|
|
257
|
+
const cached = options?.signal ? undefined : audioMetadataCache.get(filePath);
|
|
259
258
|
if (cached)
|
|
260
259
|
return cached;
|
|
261
260
|
const probePromise = (async () => {
|
|
262
|
-
const stdout = await runFfprobe([
|
|
263
|
-
"-v",
|
|
264
|
-
"quiet",
|
|
265
|
-
"-print_format",
|
|
266
|
-
"json",
|
|
267
|
-
"-show_format",
|
|
268
|
-
"-show_streams",
|
|
269
|
-
filePath,
|
|
270
|
-
]);
|
|
261
|
+
const stdout = await runFfprobe(["-v", "quiet", "-print_format", "json", "-show_format", "-show_streams", filePath], options?.signal);
|
|
271
262
|
const output = parseProbeJson(stdout);
|
|
272
263
|
const audioStream = output.streams.find((s) => s.codec_type === "audio");
|
|
273
264
|
if (!audioStream)
|
|
@@ -304,6 +295,8 @@ export async function extractAudioMetadata(filePath) {
|
|
|
304
295
|
bitrate: output.format.bit_rate ? parseInt(output.format.bit_rate) : undefined,
|
|
305
296
|
};
|
|
306
297
|
})();
|
|
298
|
+
if (options?.signal)
|
|
299
|
+
return probePromise;
|
|
307
300
|
audioMetadataCache.set(filePath, probePromise);
|
|
308
301
|
probePromise.catch(() => {
|
|
309
302
|
if (audioMetadataCache.get(filePath) === probePromise) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ffprobe.js","sourceRoot":"","sources":["../../src/utils/ffprobe.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ffprobe.js","sourceRoot":"","sources":["../../src/utils/ffprobe.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gpuEncoder.d.ts","sourceRoot":"","sources":["../../src/utils/gpuEncoder.ts"],"names":[],"mappings":"AACA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"gpuEncoder.d.ts","sourceRoot":"","sources":["../../src/utils/gpuEncoder.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAOH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,cAAc,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC;AACpF,MAAM,MAAM,UAAU,GAAG,kBAAkB,GAAG,IAAI,CAAC;AAqBnD,wBAAgB,sBAAsB,CAAC,oBAAoB,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAIzF;AAED,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,SAAS,kBAAkB,EAAE,EACzC,QAAQ,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,OAAO,CAAC,GAC1D,OAAO,CAAC,UAAU,CAAC,CAiBrB;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC,CAe5D;AAID,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,UAAU,CAAC,CAK/D;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAgBrF;AAYD,wBAAgB,YAAY,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,EAAE,CA0BlE;AA6ED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAUlF"}
|
package/dist/utils/gpuEncoder.js
CHANGED
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { spawn } from "child_process";
|
|
9
9
|
import { getFfmpegBinary } from "./ffmpegBinaries.js";
|
|
10
|
+
import { ManagedChildProcess } from "./managedChildProcess.js";
|
|
11
|
+
import { trackChildProcess } from "./processTracker.js";
|
|
10
12
|
const GPU_ENCODER_CANDIDATES = [
|
|
11
13
|
"nvenc",
|
|
12
14
|
"videotoolbox",
|
|
@@ -43,22 +45,21 @@ export async function selectUsableGpuEncoder(candidates, isUsable) {
|
|
|
43
45
|
return null;
|
|
44
46
|
}
|
|
45
47
|
export async function detectGpuEncoder() {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
stdio: ["pipe", "pipe", "pipe"],
|
|
49
|
-
});
|
|
50
|
-
let stdout = "";
|
|
51
|
-
ffmpeg.stdout.on("data", (data) => {
|
|
52
|
-
stdout += data.toString();
|
|
53
|
-
});
|
|
54
|
-
ffmpeg.on("close", () => {
|
|
55
|
-
const candidates = getCompiledGpuEncoders(stdout);
|
|
56
|
-
void selectUsableGpuEncoder(candidates, canUseGpuEncoder)
|
|
57
|
-
.then(resolve)
|
|
58
|
-
.catch(() => resolve(null));
|
|
59
|
-
});
|
|
60
|
-
ffmpeg.on("error", () => resolve(null));
|
|
48
|
+
const ffmpeg = spawn(getFfmpegBinary(), ["-encoders"], {
|
|
49
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
61
50
|
});
|
|
51
|
+
trackChildProcess(ffmpeg);
|
|
52
|
+
let stdout = "";
|
|
53
|
+
ffmpeg.stdout.on("data", (data) => {
|
|
54
|
+
stdout += data.toString();
|
|
55
|
+
});
|
|
56
|
+
const outcome = await new ManagedChildProcess(ffmpeg, {
|
|
57
|
+
deadlineAtMs: Date.now() + 30_000,
|
|
58
|
+
}).wait();
|
|
59
|
+
if (outcome.reason !== "exit" || outcome.exitCode !== 0)
|
|
60
|
+
return null;
|
|
61
|
+
const candidates = getCompiledGpuEncoders(stdout);
|
|
62
|
+
return selectUsableGpuEncoder(candidates, canUseGpuEncoder).catch(() => null);
|
|
62
63
|
}
|
|
63
64
|
let cachedGpuEncoder = undefined;
|
|
64
65
|
export async function getCachedGpuEncoder() {
|
|
@@ -118,44 +119,23 @@ export function getProbeArgs(encoder) {
|
|
|
118
119
|
return args;
|
|
119
120
|
}
|
|
120
121
|
async function canUseGpuEncoder(encoder) {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
stdio: ["ignore", "ignore", "pipe"],
|
|
137
|
-
});
|
|
138
|
-
ffmpeg.stderr?.on("data", (data) => {
|
|
139
|
-
stderr += data.toString();
|
|
140
|
-
});
|
|
141
|
-
const timer = setTimeout(() => {
|
|
142
|
-
timedOut = true;
|
|
143
|
-
ffmpeg.kill("SIGTERM");
|
|
144
|
-
killTimer = setTimeout(() => {
|
|
145
|
-
ffmpeg.kill("SIGKILL");
|
|
146
|
-
finish(false);
|
|
147
|
-
}, GPU_PROBE_KILL_GRACE_MS);
|
|
148
|
-
}, GPU_PROBE_TIMEOUT_MS);
|
|
149
|
-
ffmpeg.on("close", (code, signal) => {
|
|
150
|
-
const usable = code === 0;
|
|
151
|
-
logGpuProbeFailure(encoder, { code, signal, stderr, timedOut });
|
|
152
|
-
finish(usable);
|
|
153
|
-
});
|
|
154
|
-
ffmpeg.on("error", (error) => {
|
|
155
|
-
logGpuProbeFailure(encoder, { error, timedOut });
|
|
156
|
-
finish(false);
|
|
157
|
-
});
|
|
122
|
+
const ffmpeg = spawn(getFfmpegBinary(), getProbeArgs(encoder), {
|
|
123
|
+
stdio: ["ignore", "ignore", "pipe"],
|
|
124
|
+
});
|
|
125
|
+
trackChildProcess(ffmpeg);
|
|
126
|
+
const outcome = await new ManagedChildProcess(ffmpeg, {
|
|
127
|
+
deadlineAtMs: Date.now() + GPU_PROBE_TIMEOUT_MS,
|
|
128
|
+
terminationGraceMs: GPU_PROBE_KILL_GRACE_MS,
|
|
129
|
+
}).wait();
|
|
130
|
+
const usable = outcome.reason === "exit" && outcome.exitCode === 0;
|
|
131
|
+
logGpuProbeFailure(encoder, {
|
|
132
|
+
code: outcome.exitCode,
|
|
133
|
+
signal: outcome.signal,
|
|
134
|
+
stderr: outcome.stderr,
|
|
135
|
+
error: outcome.error,
|
|
136
|
+
timedOut: outcome.reason === "deadline",
|
|
158
137
|
});
|
|
138
|
+
return usable;
|
|
159
139
|
}
|
|
160
140
|
function logGpuProbeFailure(encoder, result) {
|
|
161
141
|
if (!isGpuProbeDebugEnabled())
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gpuEncoder.js","sourceRoot":"","sources":["../../src/utils/gpuEncoder.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"gpuEncoder.js","sourceRoot":"","sources":["../../src/utils/gpuEncoder.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAKxD,MAAM,sBAAsB,GAAyB;IACnD,OAAO;IACP,cAAc;IACd,OAAO;IACP,KAAK;IACL,KAAK;CACN,CAAC;AAEF,MAAM,mBAAmB,GAAuC;IAC9D,KAAK,EAAE,YAAY;IACnB,YAAY,EAAE,mBAAmB;IACjC,KAAK,EAAE,YAAY;IACnB,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,UAAU;CAChB,CAAC;AAEF,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAClC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC,MAAM,UAAU,sBAAsB,CAAC,oBAA4B;IACjE,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAC/C,oBAAoB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAC5D,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,UAAyC,EACzC,QAA2D;IAE3D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAC/B,IAAI,CAAC;YACH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QACpC,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,MAAM,GAAG,KAAK,CAAC,eAAe,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE;QACrD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;KAChC,CAAC,CAAC;IACH,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QAChC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,MAAM,IAAI,mBAAmB,CAAC,MAAM,EAAE;QACpD,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM;KAClC,CAAC,CAAC,IAAI,EAAE,CAAC;IACV,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrE,MAAM,UAAU,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAClD,OAAO,sBAAsB,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AAChF,CAAC;AAED,IAAI,gBAAgB,GAA2B,SAAS,CAAC;AAEzD,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACnC,gBAAgB,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAC9C,CAAC;IACD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAmB,EAAE,KAAsB;IAC3E,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9D,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;QACxD,KAAK,cAAc;YACjB,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC;QACtE,KAAK,OAAO;YACV,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;QACxD,KAAK,KAAK;YACR,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;QACpD,KAAK,KAAK;YACR,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;QACpD;YACE,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACpD,CAAC;AACH,CAAC;AAED,4EAA4E;AAC5E,yEAAyE;AACzE,yEAAyE;AACzE,uEAAuE;AACvE,0EAA0E;AAC1E,qEAAqE;AACrE,uEAAuE;AACvE,MAAM,eAAe,GAAG,GAAG,CAAC;AAC5B,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B,MAAM,UAAU,YAAY,CAAC,OAA2B;IACtD,MAAM,IAAI,GAAG;QACX,cAAc;QACd,WAAW;QACX,OAAO;QACP,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,cAAc,eAAe,IAAI,gBAAgB,oBAAoB;QACrE,WAAW;QACX,GAAG;QACH,KAAK;KACN,CAAC;IAEF,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,qBAAqB,EAAE,KAAK,EAAE,sBAAsB,CAAC,CAAC;IACnF,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAEtD,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,OAA2B;IACzD,MAAM,MAAM,GAAG,KAAK,CAAC,eAAe,EAAE,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE;QAC7D,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;KACpC,CAAC,CAAC;IACH,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,OAAO,GAAG,MAAM,IAAI,mBAAmB,CAAC,MAAM,EAAE;QACpD,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,oBAAoB;QAC/C,kBAAkB,EAAE,uBAAuB;KAC5C,CAAC,CAAC,IAAI,EAAE,CAAC;IACV,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,CAAC;IACnE,kBAAkB,CAAC,OAAO,EAAE;QAC1B,IAAI,EAAE,OAAO,CAAC,QAAQ;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,OAAO,CAAC,MAAM,KAAK,UAAU;KACxC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CACzB,OAA2B,EAC3B,MAMC;IAED,IAAI,CAAC,sBAAsB,EAAE;QAAE,OAAO;IACtC,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ;QAAE,OAAO;IAEnE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK;QACzB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO;QACtB,CAAC,CAAC,MAAM,CAAC,QAAQ;YACf,CAAC,CAAC,mBAAmB,oBAAoB,IAAI;YAC7C,CAAC,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;IAC1E,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,gBAAgB,OAAO,kBAAkB,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAChG,CAAC;AAED,SAAS,sBAAsB;IAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;IACtD,OAAO,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,MAAM,CAAC;AAC3C,CAAC;AAED,uEAAuE;AACvE,mEAAmE;AACnE,wEAAwE;AACxE,yEAAyE;AACzE,wEAAwE;AACxE,yEAAyE;AACzE,wCAAwC;AACxC,MAAM,gBAAgB,GAA2B;IAC/C,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;CACd,CAAC;AAEF,iEAAiE;AACjE,yEAAyE;AACzE,MAAM,cAAc,GAA2B;IAC7C,SAAS,EAAE,UAAU;IACrB,SAAS,EAAE,UAAU;IACrB,OAAO,EAAE,UAAU;CACpB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAmB,EAAE,MAAc;IACxE,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,OAAO;YACV,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;gBAAE,OAAO,MAAM,CAAC;YAC3C,OAAO,gBAAgB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;QAC1C,KAAK,KAAK;YACR,OAAO,cAAc,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;QAC1C;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GPU Parity Diff — diagnostic helpers for detecting shape-dependent
|
|
3
|
+
* hardware-GPU capture bugs by comparing frames captured via the two
|
|
4
|
+
* capture paths (hardware-GPU vs software-GPU / screenshot bypass).
|
|
5
|
+
*
|
|
6
|
+
* Field pattern this exists to catch:
|
|
7
|
+
*
|
|
8
|
+
* • ts=1784049136 · hardware-GPU capture emitted intermittent black
|
|
9
|
+
* rectangles in one scene; `--no-browser-gpu --low-memory-mode
|
|
10
|
+
* --workers 1` (software-GPU screenshot mode) resolved it.
|
|
11
|
+
* • ts=1784032286 · animated `clip-path` on a large image → intermittent
|
|
12
|
+
* black rectangles from Chrome capture; deterministic precomposited
|
|
13
|
+
* swipe states removed the artifact.
|
|
14
|
+
* • Baseline · JetBrains Mono glyph-drop on parallel/BeginFrame text
|
|
15
|
+
* capture.
|
|
16
|
+
*
|
|
17
|
+
* Common shape: hardware-GPU writes solid-black regions where content
|
|
18
|
+
* should exist; software-GPU / screenshot fallback renders the same
|
|
19
|
+
* region correctly. A raw per-pixel diff is a coarse signal for this —
|
|
20
|
+
* on its own it fires on every animation frame's compositor jitter, so
|
|
21
|
+
* this module also isolates the *asymmetric* black-in-A-only pattern
|
|
22
|
+
* that is the diagnostic fingerprint of the bug.
|
|
23
|
+
*
|
|
24
|
+
* This module is the reduced-scope first pass: a pure helper + unit
|
|
25
|
+
* tests. Wiring a `hyperframes verify-gpu-parity` CLI surface, capture
|
|
26
|
+
* orchestration, and integration coverage is intentionally deferred to
|
|
27
|
+
* a follow-up so the diagnostic primitive can land and be exercised
|
|
28
|
+
* against real captured frames in isolation.
|
|
29
|
+
*/
|
|
30
|
+
/** A decoded RGBA frame. Matches the shape returned by `decodePng`. */
|
|
31
|
+
export interface RgbaFrame {
|
|
32
|
+
width: number;
|
|
33
|
+
height: number;
|
|
34
|
+
data: Uint8Array;
|
|
35
|
+
}
|
|
36
|
+
export interface GpuParityDiffOptions {
|
|
37
|
+
/**
|
|
38
|
+
* Per-channel absolute difference at which a pixel is considered "differing".
|
|
39
|
+
* A pixel counts as differing if any of R/G/B channels differ by more than
|
|
40
|
+
* this value. Default 8 (tolerates minor compositor jitter / dithering).
|
|
41
|
+
*/
|
|
42
|
+
pixelChannelTolerance?: number;
|
|
43
|
+
/**
|
|
44
|
+
* A pixel qualifies as "solid black" when R + G + B is ≤ this value.
|
|
45
|
+
* Default 12 (covers hardware capture bugs that write pure #000 as well
|
|
46
|
+
* as slightly off-black values from Chrome's compositor).
|
|
47
|
+
*/
|
|
48
|
+
blackSumThreshold?: number;
|
|
49
|
+
/**
|
|
50
|
+
* A pixel qualifies as "has content" (non-black) when R + G + B is ≥ this
|
|
51
|
+
* value. Default 32 — deliberately higher than `blackSumThreshold` so the
|
|
52
|
+
* two categories cannot overlap on borderline near-black pixels.
|
|
53
|
+
*/
|
|
54
|
+
contentSumThreshold?: number;
|
|
55
|
+
/**
|
|
56
|
+
* A frame is flagged as failing parity when the black-only-in-A fraction
|
|
57
|
+
* of pixels exceeds this value. Default 0.001 (~0.1% of the frame).
|
|
58
|
+
* Lowering trades sensitivity for false-positive risk on legitimate
|
|
59
|
+
* animation frames that momentarily contain a small black shape only on
|
|
60
|
+
* one capture path.
|
|
61
|
+
*/
|
|
62
|
+
blackOnlyFractionThreshold?: number;
|
|
63
|
+
}
|
|
64
|
+
export interface BlackOnlyInARegion {
|
|
65
|
+
/** Count of pixels that are black in A but have content in B. */
|
|
66
|
+
pixels: number;
|
|
67
|
+
/** `pixels / (width * height)`. */
|
|
68
|
+
fraction: number;
|
|
69
|
+
/**
|
|
70
|
+
* Axis-aligned bounding box of all black-only-in-A pixels. `null` when
|
|
71
|
+
* `pixels === 0`. This is intentionally coarse — a single bbox is
|
|
72
|
+
* cheaper than connected-component labeling and is sufficient to
|
|
73
|
+
* localize the "one large black rectangle" pattern the field bugs
|
|
74
|
+
* produce. Callers wanting per-region detail can extend this later.
|
|
75
|
+
*/
|
|
76
|
+
boundingBox: {
|
|
77
|
+
x: number;
|
|
78
|
+
y: number;
|
|
79
|
+
width: number;
|
|
80
|
+
height: number;
|
|
81
|
+
} | null;
|
|
82
|
+
}
|
|
83
|
+
export interface GpuParityDiffResult {
|
|
84
|
+
/** Frame dimensions (both inputs must match). */
|
|
85
|
+
width: number;
|
|
86
|
+
height: number;
|
|
87
|
+
/** Total pixels compared. */
|
|
88
|
+
totalPixels: number;
|
|
89
|
+
/** Pixels differing beyond `pixelChannelTolerance`. */
|
|
90
|
+
diffPixels: number;
|
|
91
|
+
/** `diffPixels / totalPixels`. */
|
|
92
|
+
diffFraction: number;
|
|
93
|
+
/**
|
|
94
|
+
* Pixels that are solid-black in A (the hardware-GPU frame by
|
|
95
|
+
* convention) *and* have content in B (the software-GPU frame). This
|
|
96
|
+
* is the diagnostic-grade signal for shape-dependent hardware-GPU
|
|
97
|
+
* capture bugs.
|
|
98
|
+
*/
|
|
99
|
+
blackOnlyInA: BlackOnlyInARegion;
|
|
100
|
+
/**
|
|
101
|
+
* Symmetric counterpart — black in B but content in A. Useful for
|
|
102
|
+
* ruling out the inverse (extremely rare in the wild, but if it
|
|
103
|
+
* shows up it means the software path is the buggy one).
|
|
104
|
+
*/
|
|
105
|
+
blackOnlyInB: BlackOnlyInARegion;
|
|
106
|
+
}
|
|
107
|
+
export interface VerifyGpuParityResult {
|
|
108
|
+
ok: boolean;
|
|
109
|
+
/** Human-readable failure summary; empty when `ok === true`. */
|
|
110
|
+
reason: string;
|
|
111
|
+
diff: GpuParityDiffResult;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Compare two RGBA frames captured via different GPU paths.
|
|
115
|
+
*
|
|
116
|
+
* The two inputs must have identical dimensions; on mismatch this throws
|
|
117
|
+
* (with the mismatched sizes surfaced in the message) so callers cannot
|
|
118
|
+
* silently compare misaligned frames.
|
|
119
|
+
*
|
|
120
|
+
* Alpha channel is *not* considered for the black-only detection — Chrome's
|
|
121
|
+
* capture output is opaque along the code paths this diagnostic targets,
|
|
122
|
+
* and considering alpha would false-positive on legitimately transparent
|
|
123
|
+
* pixels. `pixelChannelTolerance` also compares only R/G/B for the same
|
|
124
|
+
* reason.
|
|
125
|
+
*/
|
|
126
|
+
export declare function diffGpuParityFrames(a: RgbaFrame, b: RgbaFrame, options?: GpuParityDiffOptions): GpuParityDiffResult;
|
|
127
|
+
/**
|
|
128
|
+
* PNG-buffer convenience wrapper around `diffGpuParityFrames`. Decodes
|
|
129
|
+
* both inputs via `decodePng` and delegates. Errors from the decoder are
|
|
130
|
+
* re-thrown with `cause` preserved so the failing side (A or B) is
|
|
131
|
+
* obvious in the stack.
|
|
132
|
+
*/
|
|
133
|
+
export declare function diffGpuParityPngs(pngA: Buffer, pngB: Buffer, options?: GpuParityDiffOptions): GpuParityDiffResult;
|
|
134
|
+
/**
|
|
135
|
+
* Verdict wrapper — returns `{ ok, reason }` suitable for a follow-up
|
|
136
|
+
* CLI or gate to emit. `ok === false` when either black-only fraction
|
|
137
|
+
* exceeds `blackOnlyFractionThreshold`. Raw diff numbers are always
|
|
138
|
+
* included on both branches so callers can log or gate on their own
|
|
139
|
+
* metrics without a second pass.
|
|
140
|
+
*/
|
|
141
|
+
export declare function verifyGpuParity(a: RgbaFrame, b: RgbaFrame, options?: GpuParityDiffOptions): VerifyGpuParityResult;
|
|
142
|
+
//# sourceMappingURL=gpuParityDiff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gpuParityDiff.d.ts","sourceRoot":"","sources":["../../src/utils/gpuParityDiff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAMH,uEAAuE;AACvE,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;;OAMG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,WAAW,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC7E;AAED,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,YAAY,EAAE,kBAAkB,CAAC;IACjC;;;;OAIG;IACH,YAAY,EAAE,kBAAkB,CAAC;CAClC;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,OAAO,CAAC;IACZ,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,mBAAmB,CAAC;CAC3B;AAWD;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,SAAS,EACZ,CAAC,EAAE,SAAS,EACZ,OAAO,GAAE,oBAAyB,GACjC,mBAAmB,CA0GrB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,oBAAyB,GACjC,mBAAmB,CAcrB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,CAAC,EAAE,SAAS,EACZ,CAAC,EAAE,SAAS,EACZ,OAAO,GAAE,oBAAyB,GACjC,qBAAqB,CA+BvB"}
|