From 0fcf7928fe9096413b85a417a87a3562fbd2c844 Mon Sep 17 00:00:00 2001 From: Vance Ingalls Date: Fri, 24 Jul 2026 01:17:36 -0700 Subject: [PATCH] fix(producer): decode percent-encoded video src in HDR pre-extract (PRINFRA-349) --- .../render/stages/captureHdrResources.test.ts | 57 ++++++++++++++++++- .../render/stages/captureHdrResources.ts | 16 +++--- .../services/render/stages/captureHdrStage.ts | 1 - 3 files changed, 65 insertions(+), 9 deletions(-) diff --git a/packages/producer/src/services/render/stages/captureHdrResources.test.ts b/packages/producer/src/services/render/stages/captureHdrResources.test.ts index 503b97f1ed..2efc4fdf5c 100644 --- a/packages/producer/src/services/render/stages/captureHdrResources.test.ts +++ b/packages/producer/src/services/render/stages/captureHdrResources.test.ts @@ -1,5 +1,60 @@ import { describe, expect, it } from "vitest"; -import { estimateHdrExtractionBytes } from "./captureHdrResources.js"; +import { mkdtempSync, rmSync, writeFileSync } from "node:fs"; +import { tmpdir } from "node:os"; +import { join } from "node:path"; +import { estimateHdrExtractionBytes, planHdrResources } from "./captureHdrResources.js"; +import type { CompositionMetadata } from "../shared.js"; + +function videoComposition(src: string): CompositionMetadata { + return { + duration: 5, + width: 1920, + height: 1080, + audios: [], + images: [], + videos: [{ id: "a-roll", src, start: 0, end: 5, mediaStart: 0, loop: false, hasAudio: false }], + }; +} + +describe("planHdrResources non-ASCII src resolution (PRINFRA-349)", () => { + it("decodes a percent-encoded CJK