diff --git a/CHANGELOG.md b/CHANGELOG.md index 11a93f3d..766ccb2a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,14 +31,6 @@ quietly. Latent width and height snap to even, since a patchified model cannot take odd. ### Fixed -- **Timeline playback died partway through a long timeline: play/pause left it on "Loading" - forever.** `_classifyVideoError` drops any element whose url is not registered in - `_urlClips`, and only `_syncPool` registered — which runs on a timeline rebuild, not as the - playhead moves. So every clip the sliding pool window materialized during playback could - never retry a failed load: one transient error (rapid play/pause over the network poisons a - stream) and that clip was stuck until a page reload. The boundary fell wherever the initial - window ended, which on a typical timeline is around the halfway point. - - **A linked input driven by `Project · Prompt (global)` claimed to encode "the same text Studio would" and did not.** Studio appends the postfix to every scene itself, so the global prompt is strictly less than what it encodes — and the postfix is usually where diff --git a/movie_editor/frontend/player.js b/movie_editor/frontend/player.js index 370799c5..78f083be 100644 --- a/movie_editor/frontend/player.js +++ b/movie_editor/frontend/player.js @@ -628,14 +628,7 @@ for (const u of want) { if (pool.has(u)) continue; const clip = _clips.find((c) => _clipUrl(c) === u); - if (!clip) continue; - // Register BEFORE materializing: _classifyVideoError drops any element whose url is - // not in _urlClips, so an element created here without one could never retry a failed - // load and sat on "loading" forever. Only _syncPool registered, and it only runs on a - // timeline rebuild — so every clip the sliding window materialized during playback - // (i.e. everything past the first window) was unrecoverable. - _registerUrlClip(u, clip); - _ensureVideo(u, clip); + if (clip) _ensureVideo(u, clip); } if (pool.size <= POOL_MAX) return; for (const [u, v] of [...pool]) { // Map order = insertion order ⇒ oldest first