From fc0a801e8829b623d62137a3f7cbdec38c6d555a Mon Sep 17 00:00:00 2001 From: cashmere Date: Sun, 26 Jul 2026 21:06:33 +0200 Subject: feat: freeze frame at playhead Enable the timeline toolbar freeze-frame button: capture the composited canvas as PNG, add it as an image media asset, split the video element at the playhead, shift the right part by the freeze duration, and insert a 3-second image element in the gap. Adds RendererManager.captureFrame(), reused by createSnapshot(). Also adds the Nix devshell (flake.nix/flake.lock: bun + nodejs) and AGENTS.md repository guidelines. --- apps/web/src/actions/definitions.ts | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'apps/web/src/actions/definitions.ts') diff --git a/apps/web/src/actions/definitions.ts b/apps/web/src/actions/definitions.ts index 986510ec..eed9c378 100644 --- a/apps/web/src/actions/definitions.ts +++ b/apps/web/src/actions/definitions.ts @@ -102,6 +102,10 @@ export const ACTIONS = { description: "Extract or recover source audio", category: "editing", }, + "freeze-frame": { + description: "Freeze frame at playhead", + category: "editing", + }, "select-all": { description: "Select all elements", category: "selection", -- cgit v1.3.1