From 3ef194234e6104664b8b1902ae916dd7480c3617 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miguel=20=C3=81ngel?= Date: Sat, 18 Jul 2026 22:07:39 +0000 Subject: [PATCH] chore(producer): remove stale audio concat remnants --- .../src/services/render/audioPadTrim.test.ts | 7 ++---- .../src/services/render/audioPadTrim.ts | 23 ------------------- 2 files changed, 2 insertions(+), 28 deletions(-) diff --git a/packages/producer/src/services/render/audioPadTrim.test.ts b/packages/producer/src/services/render/audioPadTrim.test.ts index e6b6d2716..90fe862b4 100644 --- a/packages/producer/src/services/render/audioPadTrim.test.ts +++ b/packages/producer/src/services/render/audioPadTrim.test.ts @@ -25,10 +25,7 @@ import { describe("buildPadTrimAudioArgs", () => { it("emits a decode/filter/re-encode pad plan when audio is shorter than target", () => { - const plan = buildPadTrimAudioPlan("/tmp/in.aac", "/tmp/out.aac", 4.0, 5.0, { - sampleRate: 48000, - channels: 2, - }); + const plan = buildPadTrimAudioPlan("/tmp/in.aac", "/tmp/out.aac", 4.0, 5.0); expect(plan.operation).toBe("pad"); expect(plan.steps).toHaveLength(1); const args = plan.steps[0]!.args; @@ -36,7 +33,7 @@ describe("buildPadTrimAudioArgs", () => { expect(args[args.indexOf("-af") + 1]).toBe("apad=whole_dur=5.000000"); expect(args[args.indexOf("-t") + 1]).toBe("5.000000"); expect(args[args.indexOf("-c:a") + 1]).toBe("aac"); - // Cleanup includes BOTH the silence tail and the concat list script. + // The single-step filter plan has no intermediate artifacts to clean up. expect(plan.cleanupPaths).toEqual([]); }); diff --git a/packages/producer/src/services/render/audioPadTrim.ts b/packages/producer/src/services/render/audioPadTrim.ts index 79128de68..6d56cec77 100644 --- a/packages/producer/src/services/render/audioPadTrim.ts +++ b/packages/producer/src/services/render/audioPadTrim.ts @@ -214,29 +214,6 @@ function formatSeconds(sec: number): string { return sec.toFixed(6); } -/* - // Bare paths in concat directives — NOT `file://` URLs. Two failure - // modes on the round trip to a working shape: - // 1. `file:///C:/…` — FFmpeg 8.x on Windows fails to open URL-form - // paths from the concat demuxer with "Impossible to open - // file:///C:/…" (its `file:` protocol strips the scheme leaving - // `///C:/…`, which Windows path parsing then rejects). Field- - // signal reports ts=1784169914 / 1784177061 / 1784177375 (all - // win32/x64 CLI 0.7.59; the last isolated the module's arg shape - // vs a working manual pad/trim command). - // 2. Bare `/tmp/…` when the concat script was fed via `pipe:0` — - // FFmpeg's URL joiner resolves absolute POSIX paths against the - // base `pipe:` URL, producing `pipe:/tmp/…` which the demuxer - // then tries to open as a pipe. Broke Linux CI (regression shard - // + producer integration) once the `file://` prefix was dropped. - // Fix: emit bare paths AND materialize the concat script into a real - // file (see `concatListPath`/`concatListContent` on the pad-concat - // step), matching sibling `assemble.ts`'s concat convention. A real - // file's directory becomes the base URL, and absolute paths in the - // script resolve as-is on both platforms. The single-quote escaping - // (`'\''`) is the concat demuxer's own escape rule. -*/ - /** * Pad or trim `audio.aac` so its exact duration matches `frameCount / fps` * for the assembled video.