@glissade/cli 0.41.0-pre.1 → 0.41.1-pre.0
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/dist/render.js +5 -0
- package/dist/shards.js +5 -3
- package/package.json +10 -10
package/dist/render.js
CHANGED
|
@@ -920,6 +920,11 @@ async function planFinalAudio(opts, timelineClips, duration, container) {
|
|
|
920
920
|
audioInputs: [],
|
|
921
921
|
audioArgs: []
|
|
922
922
|
};
|
|
923
|
+
const missing = mix.inputs.find((p) => !existsSync(p));
|
|
924
|
+
if (missing !== void 0) {
|
|
925
|
+
const isNarrationOrSfx = /(^|[/\\])hook-[^/\\]*\.wav$/i.test(missing) || /\.(narration|sfx)\b/i.test(missing);
|
|
926
|
+
throw new Error(`audio input not found: ${missing}\n` + (isNarrationOrSfx ? " A committed timing manifest references this cache file, but it is not on disk (the audio cache is usually git-ignored).\n Regenerate it with `gs narrate` (or `gs sfx`), or pass --narration off / --sfx off to skip the mix." : " Check the audio asset path, or pass --narration off / --music off / --sfx off to skip the mix."));
|
|
927
|
+
}
|
|
923
928
|
const loud = await resolveLoudnessGainDb(opts, timelineClips);
|
|
924
929
|
const filterComplex = loud !== null ? applyMixGainDb(mix.filterComplex, loud.gainDb, loud.limiter) : mix.filterComplex;
|
|
925
930
|
if (loud !== null) process.stderr.write(`note: applying committed publish loudness gain ${loud.gainDb.toFixed(2)} dB${loud.limiter ? ` + true-peak limiter @ ${loud.limiter.ceilingDb} dBTP` : " (single-pass scalar)"}\n`);
|
package/dist/shards.js
CHANGED
|
@@ -406,7 +406,7 @@ async function renderIncremental(a) {
|
|
|
406
406
|
process.stderr.write(plan.kind === "splice" ? `incremental: ${renderFrames}/${total} frames changed — re-rendering those, splicing ${total - renderFrames} from the intermediate\n` : plan.kind === "unchanged" ? `incremental: 0/${total} frames changed — re-using the intermediate verbatim\n` : `incremental: full render (${prev ? "ineligible for splice" : "no prior intermediate"}) — building the intermediate for next time\n`);
|
|
407
407
|
const work = mkdtempSync(join(tmpdir(), "glissade-incr-"));
|
|
408
408
|
const segVideos = [];
|
|
409
|
-
let
|
|
409
|
+
let rendered = 0;
|
|
410
410
|
try {
|
|
411
411
|
for (let i = 0; i < segments.length; i++) {
|
|
412
412
|
const seg = segments[i];
|
|
@@ -493,8 +493,10 @@ async function renderIncremental(a) {
|
|
|
493
493
|
});
|
|
494
494
|
}
|
|
495
495
|
segVideos.push(segVideo);
|
|
496
|
-
|
|
497
|
-
|
|
496
|
+
if (seg.kind === "render" && renderFrames > 0) {
|
|
497
|
+
rendered += seg.end - seg.start + 1;
|
|
498
|
+
opts.onProgress?.(rendered, renderFrames);
|
|
499
|
+
}
|
|
498
500
|
}
|
|
499
501
|
const listFile = join(work, "concat.txt");
|
|
500
502
|
writeFileSync(listFile, segVideos.map((p) => `file '${p.replace(/'/g, "'\\''")}'`).join("\n") + "\n");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@glissade/cli",
|
|
3
|
-
"version": "0.41.
|
|
3
|
+
"version": "0.41.1-pre.0",
|
|
4
4
|
"description": "glissade CLI: headless rendering via backend-skia (+ FFmpeg mux).",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"engines": {
|
|
@@ -28,15 +28,15 @@
|
|
|
28
28
|
"@napi-rs/canvas": "^0.1.65",
|
|
29
29
|
"esbuild": "0.28.0",
|
|
30
30
|
"jiti": "^2.4.2",
|
|
31
|
-
"@glissade/backend-skia": "0.41.
|
|
32
|
-
"@glissade/core": "0.41.
|
|
33
|
-
"@glissade/interact": "0.41.
|
|
34
|
-
"@glissade/lottie": "0.41.
|
|
35
|
-
"@glissade/narrate": "0.41.
|
|
36
|
-
"@glissade/player": "0.41.
|
|
37
|
-
"@glissade/scene": "0.41.
|
|
38
|
-
"@glissade/sfx": "0.41.
|
|
39
|
-
"@glissade/svg": "0.41.
|
|
31
|
+
"@glissade/backend-skia": "0.41.1-pre.0",
|
|
32
|
+
"@glissade/core": "0.41.1-pre.0",
|
|
33
|
+
"@glissade/interact": "0.41.1-pre.0",
|
|
34
|
+
"@glissade/lottie": "0.41.1-pre.0",
|
|
35
|
+
"@glissade/narrate": "0.41.1-pre.0",
|
|
36
|
+
"@glissade/player": "0.41.1-pre.0",
|
|
37
|
+
"@glissade/scene": "0.41.1-pre.0",
|
|
38
|
+
"@glissade/sfx": "0.41.1-pre.0",
|
|
39
|
+
"@glissade/svg": "0.41.1-pre.0"
|
|
40
40
|
},
|
|
41
41
|
"repository": {
|
|
42
42
|
"type": "git",
|