Advanced Search
Search Results
45 total results found
Pipewire (NON cancellare)
NON ELIMINARE QUESTA PAGINA I video allegati a questa pagina sono utilizzati in questo articolo pubblico. Ho dovuto rendere anche questa pagina pubblica (tanto il libro non lo è) perché in bookstack, l'ownership degli allegati segue quella della pagina "primar...
Pipewire experiments
Architettura di OSS Open Sound System offriva un'interfaccia in puro stile "è tutto un file": le applicazioni OSS utilizzavano /dev/dsp e /dev/audio, esposti dal modulo kernel, per accedere direttamente all'hardware, in modo esclusivo e in formato grezzo. Nie...
Matrix
Metti in piedi un server Matrix in 5 minuti seguendo questa guida. Nessuna particolare competenza richiesta: segui la procedura, imposta le variabili con i tuoi valori e copincolla i comandi nel terminale! Requisiti Un dominio registrato (circa 2€ l'anno con ...
Playbook di mitigazione CVE-2026-31431
Cos'è CVE-2026-31431 è una vulnerabilità di Privilege Escalation che permette ad un utente non privilegiato di diventare root su qualsiasi sistema Linux dal 2017 ad oggi, a causa di una vulnerabilità passata inosservata per anni nel modulo algif_aead che forni...
Workspace Map
Venturi is a single Cargo workspace (edition 2024) of eight crates. Dependencies never point upwards: the data model knows nothing about media, the engines know nothing about each other, and the application core knows nothing about any UI. The GUI and the MCP ...
Goals & Scope
Venturi is an editing-focused non-linear video editor (NLE) written in Rust. It does few things and aims to do them well: cutting, the transforms used while editing, correcting the color and finishing the sound in place. System context A single binary, vv-app...
Packaging
Releases ship three files: an AppImage for Linux x86_64, one for Linux aarch64, and a dmg for Apple Silicon Macs. Each bundles its own FFmpeg, built from source. Release workflow scripts/release.sh 0.2.0 # bumps Cargo.toml/Cargo.lock, commits, tags gi...
Key Design Decisions
The choices that shape the rest of the code. Each one is detailed in the chapter of the crate it belongs to. Platform and stack Decision Why Rust Mature media ecosystem, no GC pauses, memory safety while iterating fast (also with AI assistance). egui + eframe ...
Glossary
Terms used throughout the book. Code names are given where they differ from the plain term. Model Term Meaning Project The whole document and single source of truth: media pool, timelines, folders, id counters. Saved as .vvproj (RON). Timeline A sequence with...
Building & Dependencies
Full instructions live in docs/BUILDING.md; this page summarises what the build needs and why. Build-time dependencies Dependency Needed by Rust ≥ 1.88 (edition 2024) The whole workspace. FFmpeg dev libraries + pkg-config ffmpeg-next: decode, encode, resampl...
Testing Conventions
Where unit tests live Unit tests are not inline. They live in crates/<crate>/src/tests/, mirroring the source path, and each source file pulls its tests in as a child module so they still see private items: // in src/export.rs; tests in src/tests/export.rs #[...
App Structure & Frame Loop
vv-app is the only binary. main() picks one of three modes from the command line: Invocation What runs vv-app [file] [--mcp] The editor window. An optional file is imported at startup; --mcp serves MCP whatever the setting says. vv-app mcp [project] Headless...
Timeline UI
timeline_ui.rs (~6.7k lines, the largest module) is the multi-track timeline widget. It is drawn with egui's painter and hand-written hit-testing rather than nested widgets: for a dense grid of rectangles that is far cheaper. Contract with the app show_timelin...
Viewer, Transport & Playback
Playback is split across threads so the UI never waits on a decoder: video is decoded ahead by RenderAhead, audio is decoded by the mix_buffers workers and played by the mixer, and the UI thread only composes what is already in memory. Pipeline The audio clo...
Panels & Dialogs
The window is built from egui docked panels plus floating windows. Each panel's visibility and size live in Settings::panels, so the layout survives restarts. Window layout egui allocates panels in the order they are added. The left column comes first and tak...
Settings, i18n, Theme
User settings settings.rs holds preferences of the program, not of the project. They are stored as JSON in $XDG_CONFIG_HOME/venturi/settings.json (default ~/.config/venturi/settings.json). Group Fields General Language, kinetic scrolling (timeline, media poo...
Entities
The whole document is one plain struct, vv_core::Project ( model.rs). There is no node graph: every clip carries a fixed EffectStack. The project is owned by a vv_session::Session together with its undo History; every change goes through a command (see Com...
IDs & IdMap
Entities are referenced by id, never by pointer or index into a Vec that could shift. The core rule: an id is never reused, and an undo puts an entity back under the id it had. Commands, selections and ids handed to MCP clients therefore stay valid across any...