From 7ffee3e688573f7c90f385c4892b61649de57c19 Mon Sep 17 00:00:00 2001 From: digital-garbage <133010426+digital-garbage@users.noreply.github.com> Date: Sun, 7 Jun 2026 19:08:49 +0300 Subject: [PATCH] =?UTF-8?q?Movie=20Editor:=20per-clip=20in/out=20model=20?= =?UTF-8?q?=E2=80=94=20splits=20&=20deletes=20honored=20in=20preview=20+?= =?UTF-8?q?=20render?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace whole-run renderedSegments with per-scene sceneRenders {media, inSec}. The player builds per-scene clips (media, startSec, durationSec, inSec) and plays each clip's [inSec, inSec+dur] window via a rAF tick (precise out-points, so deleted parts aren't played; contiguous split seams continue seamlessly). Split sets the second half's inSec; delete drops the mapping. Render route takes per-clip in/dur and concatenates only kept clips (ffmpeg -ss/-t + concat filter, audio preserved). Export/hasRender use sceneRenders. Co-Authored-By: Claude Opus 4.8 --- movie_editor/frontend/player.js | 158 +++++++++++++++--------------- movie_editor/frontend/store.js | 87 ++++++++++------ movie_editor/frontend/timeline.js | 3 +- movie_editor/server.py | 56 +++++------ 4 files changed, 165 insertions(+), 139 deletions(-) diff --git a/movie_editor/frontend/player.js b/movie_editor/frontend/player.js index 703dac03..1ccdeaf3 100644 --- a/movie_editor/frontend/player.js +++ b/movie_editor/frontend/player.js @@ -18,7 +18,6 @@ const stage = document.createElement("div"); stage.className = "pm-stage"; const pool = new Map(); // url ->