From f5ef136bf438c09e59332c83609a0109cf6d30ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastjan=20Arti=C4=8D?= Date: Sat, 2 May 2026 07:53:44 +0000 Subject: [PATCH] Marker center = ORIGINAL clip center (not dynamic) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit User: 'če razširim zoom in podaljšam komad potem polovica ni več tam kjer je reel IN in tam kjer je OUT. Naj se program drži polovice avtomatično narejenega reela' Pred (bug): center = (trimStart + trimEnd) / 2 # dynamic Ko user razširi clip 60-90 → 50-110: nov center = 80 (prej 75) Klik pri 78s → IN (čeprav user mislil OUT!) Po (fix): initialCenter = (startInit + endInit) / 2 # FIKSEN, izračunan ob open Original LLM center se NE spreminja Klik pri 78s vedno → OUT (če je 78 > 75) Klik pri 70s vedno → IN Ne glede koliko user razširi/oža clip, marker assignment uporablja fiksno 'sredino' originalnega LLM-jevega clipa. Tudi drag handle: če marker zaide čez initialCenter → reset na trim border. --- templates/index.html | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/templates/index.html b/templates/index.html index 12cc967..7109317 100644 --- a/templates/index.html +++ b/templates/index.html @@ -1331,6 +1331,10 @@ // State let trimStart = startInit; let trimEnd = endInit; + // Fiksna sredina za marker assignment — original LLM-jev clip center + // (NE se ne spreminja ko user drag-a handle-je, da klik blizu OUT + // vedno premakne OUT, ne glede koliko user razširi clip) + const initialCenter = (startInit + endInit) / 2; let dragging = null; // 'left' / 'right' / null // Marker state — kje je bil zadnji play (loči levi/desni) @@ -1395,10 +1399,9 @@ trimEnd = t; if (video) video.currentTime = t; } - // Sync markerji da ne ostanejo na napačni strani (čez center) - const center = (trimStart + trimEnd) / 2; - if (markerInTime > center - 0.1) markerInTime = trimStart; - if (markerOutTime < center + 0.1) markerOutTime = trimEnd; + // Sync markerji: če čez initialCenter, reset (zelen sme samo levo, rdeč desno) + if (markerInTime > initialCenter - 0.1) markerInTime = trimStart; + if (markerOutTime < initialCenter + 0.1) markerOutTime = trimEnd; renderTrim(); renderMarkers(); } @@ -1484,16 +1487,13 @@ if (video) { if (video.paused) { // STROGO: zelen IN samo v LEVI polovici, rdeč OUT samo v DESNI polovici - // Klik LEVO od center + Enter → IN (zelen) - // Klik DESNO od center + Enter → OUT (rdeč) - // Klik točno NA centru → OUT (default) + // Center = ORIGINAL (LLM-jev clip center) — NE se NE spreminja! + // Tako, če user razširi clip, klik blizu OUT še vedno → OUT marker const t = video.currentTime; - const center = (trimStart + trimEnd) / 2; + const center = initialCenter; if (t < center) { - // Postavi IN, ampak strogo omeji: ne sme čez center markerInTime = Math.min(t, center - 0.1); } else { - // Postavi OUT, ampak strogo omeji: ne sme čez center markerOutTime = Math.max(t, center + 0.1); } console.log("[Marker]", { t, center, trimStart, trimEnd, markerInTime, markerOutTime });