Migrate the .beam container to SQLite and stream media from it instead of decoding whole files into RAM on import/load. Container & large files: - SQLite .beam container (beam_archive) with in-place transactional saves and an incremental BlobReader; supports both packed (chunked blobs) and referenced (external path) media, with a user preference + first-import prompt for files over the large-media threshold. Audio streaming: - Stream packed compressed audio on load via an inversion-of-control blob factory (AudioBlobSourceFactory): daw-backend defines the trait, core implements it over BlobReader, so the audio engine stays container-agnostic. - Bulk-activate disk streaming for all loaded clips after SetProject. - Sample-accurate compressed seek (SeekMode::Accurate; Coarse mislands on VBR). Video: - Video frames decoded/streamed on demand; thumbnails generated asynchronously on a dedicated decoder so import/load never blocks the UI. - The video's audio track is streamed on demand via an ffmpeg VideoAudioReader as a separate editable AudioClip (no /tmp WAV extraction). Waveform overview: - Streaming min/max LOD pyramid (waveform_pyramid), bounded memory, configurable floor B; serialized into the container and restored on load (or generated in the background from the packed blob when absent), so no re-decode on reload. - GPU min/max upload path; integer-LOD textureLoad fixes zoom-dependent wobble. |
||
|---|---|---|
| .. | ||
| beamdsp | ||
| egui_node_graph2 | ||
| lightningbeam-core | ||
| lightningbeam-editor | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| build-static.sh | ||
| build-windows.bat | ||