@hyperframes/engine 0.8.179 → 0.8.180
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.
|
@@ -428,10 +428,6 @@ export declare function recordSubTimelineWarning(session: CaptureSession, timeou
|
|
|
428
428
|
* PRINFRA-300 (blank hook scene, zero diagnostics, "fixed" by re-render).
|
|
429
429
|
*/
|
|
430
430
|
export declare function buildLiveMapWarning(libraries: readonly string[]): CaptureWarning;
|
|
431
|
-
/** Out-of-band videos a poster now sizes, so dropping their media cannot move layout. */
|
|
432
|
-
export declare function releasableVideoIds(options: CaptureOptions): string[];
|
|
433
|
-
/** FFmpeg supplies these videos' frames, so their own players would only hold decoders and buffers in every worker. */
|
|
434
|
-
export declare function releaseInjectedVideoMedia(page: Page, videoIds: readonly string[]): Promise<void>;
|
|
435
431
|
export declare function applyVideoMetadataHints(page: Page, hints: readonly CaptureVideoMetadataHint[] | undefined): Promise<void>;
|
|
436
432
|
/** Thrown once a VFX chain fails: the frames it paints would render without the effect. */
|
|
437
433
|
export declare class VfxFailureError extends Error {
|
|
@@ -1529,28 +1529,6 @@ async function decodeAllImages(page) {
|
|
|
1529
1529
|
}));
|
|
1530
1530
|
});
|
|
1531
1531
|
}
|
|
1532
|
-
/** Out-of-band videos a poster now sizes, so dropping their media cannot move layout. */
|
|
1533
|
-
export function releasableVideoIds(options) {
|
|
1534
|
-
const hinted = new Set((options.videoMetadataHints ?? []).map((hint) => hint.id));
|
|
1535
|
-
return (options.skipReadinessVideoIds ?? []).filter((id) => hinted.has(id));
|
|
1536
|
-
}
|
|
1537
|
-
/** FFmpeg supplies these videos' frames, so their own players would only hold decoders and buffers in every worker. */
|
|
1538
|
-
export async function releaseInjectedVideoMedia(page, videoIds) {
|
|
1539
|
-
if (videoIds.length === 0)
|
|
1540
|
-
return;
|
|
1541
|
-
await page.evaluate((ids) => {
|
|
1542
|
-
for (const id of ids) {
|
|
1543
|
-
const video = window.__hfMediaEl?.(id) ?? document.getElementById(id);
|
|
1544
|
-
if (!(video instanceof HTMLVideoElement))
|
|
1545
|
-
continue;
|
|
1546
|
-
video.pause();
|
|
1547
|
-
for (const source of video.querySelectorAll("source"))
|
|
1548
|
-
source.remove();
|
|
1549
|
-
video.removeAttribute("src");
|
|
1550
|
-
video.load();
|
|
1551
|
-
}
|
|
1552
|
-
}, [...videoIds]);
|
|
1553
|
-
}
|
|
1554
1532
|
export async function applyVideoMetadataHints(page, hints) {
|
|
1555
1533
|
if (!hints || hints.length === 0)
|
|
1556
1534
|
return;
|
|
@@ -1785,7 +1763,6 @@ export async function initializeSession(session) {
|
|
|
1785
1763
|
assertVfxIntact(session);
|
|
1786
1764
|
recordSubTimelineWarning(session, pageReadyTimeout);
|
|
1787
1765
|
await applyVideoMetadataHints(page, session.options.videoMetadataHints);
|
|
1788
|
-
await releaseInjectedVideoMedia(page, releasableVideoIds(session.options));
|
|
1789
1766
|
logInitPhase("applyVideoMetadataHints complete");
|
|
1790
1767
|
// Run independent readiness checks in parallel — videos, images, fonts,
|
|
1791
1768
|
// and Tailwind don't depend on each other's completion.
|
|
@@ -1916,7 +1893,6 @@ export async function initializeSession(session) {
|
|
|
1916
1893
|
assertVfxIntact(session);
|
|
1917
1894
|
recordSubTimelineWarning(session, pageReadyTimeout);
|
|
1918
1895
|
await applyVideoMetadataHints(page, session.options.videoMetadataHints);
|
|
1919
|
-
await releaseInjectedVideoMedia(page, releasableVideoIds(session.options));
|
|
1920
1896
|
logInitPhase("applyVideoMetadataHints complete");
|
|
1921
1897
|
// Run independent readiness checks in parallel — videos, images, fonts,
|
|
1922
1898
|
// and Tailwind don't depend on each other's completion.
|
|
@@ -2522,7 +2498,6 @@ export async function createStaticVerificationPage(session) {
|
|
|
2522
2498
|
knownUnregisteredIds: session.subTimelineWaitMemo.unregisteredIds,
|
|
2523
2499
|
});
|
|
2524
2500
|
await applyVideoMetadataHints(page, session.options.videoMetadataHints);
|
|
2525
|
-
await releaseInjectedVideoMedia(page, releasableVideoIds(session.options));
|
|
2526
2501
|
const skipVideoIds = session.options.skipReadinessVideoIds ?? [];
|
|
2527
2502
|
await Promise.all([
|
|
2528
2503
|
pollVideosReady(page, skipVideoIds, pageReadyTimeout),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hyperframes/engine",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.180",
|
|
4
4
|
"description": "Seekable web page to video rendering engine (Puppeteer + FFmpeg)",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -50,8 +50,8 @@
|
|
|
50
50
|
"linkedom": "^0.18.12",
|
|
51
51
|
"puppeteer": "^25.8.0",
|
|
52
52
|
"puppeteer-core": "^25.8.0",
|
|
53
|
-
"@hyperframes/core": "^0.8.
|
|
54
|
-
"@hyperframes/parsers": "^0.8.
|
|
53
|
+
"@hyperframes/core": "^0.8.180",
|
|
54
|
+
"@hyperframes/parsers": "^0.8.180"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
57
|
"@types/node": "^25.0.10",
|