Marker center = ORIGINAL clip center (not dynamic)

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.
This commit is contained in:
Sebastjan Artič 2026-05-02 07:53:44 +00:00
parent 40151f8f57
commit f5ef136bf4

View File

@ -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 });