Recently Updated Pages
Proxies, Thumbnails, Waveforms
Three artifacts are derived from every imported media, each by its own background worker in vv-a...
Frame Cache
Playback and scrubbing read decoded frames from one SharedFrameCache ( vv-media/src/cache.rs), f...
Decode & HW Acceleration
vv_media::Decoder decodes one video stream, sequentially ( next_frame) or after seek_to_time. Ev...
Probe & Import
Importing turns a file path into a MediaItem in the project's media pool. Probing is the only st...
Silence Detection
Silence removal tells speech apart from pauses with voice activity detection rather than a volume...
Voiceover Recording
Voiceover records the microphone onto the armed audio tracks while the timeline plays at 1x, over...
Time-Stretch & Speed
Pitch-preserving time-stretch is libavfilter's rubberband filter, wrapped by vv_audio::stretch_...
Headless vs Editor-Hosted
The same MCP server runs in two hosts. Headless, vv-app mcp [project] is the whole program: no w...
Architecture
vv-mcp exposes Venturi to AI agents over the Model Context Protocol. The protocol side (rmcp on a...
Settings, i18n, Theme
User settings settings.rs holds preferences of the program, not of the project. They are stored a...
Workspace Map
Venturi is a single Cargo workspace (edition 2024) of eight crates. Dependencies never point upwa...
Thread Map
Venturi has one owner of the document at a time: the UI thread holds the Session (project + undo...
Data Flow Between Threads
Two patterns cover almost all cross-thread traffic: the playback loop, where the audio clock driv...
OTIO Import/Export
Timelines travel to and from other NLEs as OpenTimelineIO JSON ( vv_core::otio), tested against D...
Commands, Undo/Redo
Undo uses the command pattern ( command.rs). Each command captures, when applied, the state it ne...
IDs & IdMap
Entities are referenced by id, never by pointer or index into a Vec that could shift. The core r...
Entities
The whole document is one plain struct, vv_core::Project ( model.rs). There is no node graph: ev...
Timeline UI
timeline_ui.rs (~6.7k lines, the largest module) is the multi-track timeline widget. It is drawn ...
Packaging
Releases ship three files: an AppImage for Linux x86_64, one for Linux aarch64, and a dmg for App...
Building & Dependencies
Full instructions live in docs/BUILDING.md; this page summarises what the build needs and why. B...