Thumbnail rendering fixes: - Strip now tiles from each clip's true (unclamped) origin and draws only the tiles intersecting the visible rect, so it scrolls correctly and shows the right frames when a clip is scrolled partly off the left. Both render sites (collapsed group + expanded track) share one draw_video_thumbnail_strip helper. - On-clip strip no longer freezes on the first thumbnail: get_thumbnail_at now returns the actual thumbnail timestamp and the GPU texture cache keys on it, so tiles refresh as closer thumbnails finish generating. - Hover preview derives content time from the clip's true origin too (matches the strip when scrolled off-screen). - insert_thumbnail keeps the cache sorted + deduped (fixes a latent unsorted binary_search bug, and makes concurrent restore + resume race-safe). Thumbnail persistence (mirrors waveform persistence): - MediaKind::Thumbnail rows, keyed by thumbnail_media_id(clip_id) (clip id XOR a sentinel). Each clip's thumbnails PNG-encoded into one opaque LBTN blob (editor owns the format), snapshotted cheaply (Arc clones) and encoded off the UI thread. - Save writes the packs (kept in place on re-save); load reads them into LoadedProject.thumbnail_blobs; the editor decodes + inserts them on a background thread, so reload shows thumbnails instantly with no re-decode (even if the source video file is missing). - Partial sets are persisted with a complete flag and RESUMED on load: generate_keyframe_thumbnails takes a should_skip predicate so a save made mid-generation continues from where it left off instead of redoing the work. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| beamdsp | ||
| egui_node_graph2 | ||
| lightningbeam-core | ||
| lightningbeam-editor | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| build-static.sh | ||
| build-windows.bat | ||