Dropping a new clip whose in-point landed in empty track space (the stored-range model allows holes between blocks; the C++ layout is contiguous) left the overlapped clip untouched AND inserted the new clip before it in track order, so it slid UNDER the clip it covered. Starting on a clip already overwrote correctly, so the behavior depended on where the in-point happened to fall. TrackRippleRemoveAreaCommand::prepare now handles the hole case (no block spans the range start): nothing is trimmed on the left, the insertion anchor is the last block ending at/before the range, and the shared trailing scan removes/head-trims the blocks the range covers. Regression tests: domain_test (command level) and graphops (the app's place_footage_clip path).
home, title, heroImage, heroText, heroFullScreen, tagline, actions, features, footer
| home | title | heroImage | heroText | heroFullScreen | tagline | actions | features | footer | |||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| true | Oak Video Editor | /images/oak-icon.png | Oak Video Editor | false | A modern, open-source, non-linear editor with a focus on speed and clarity. |
|
|
Copyright © Oak Video Editor |
About Oak
Oak Video Editor is a renamed fork of Olive, focused on delivering a polished, creator-friendly editing experience. This site hosts build notes, project file references, and test plans for contributors.
Quick Start
- Build from source on Windows, macOS, or Linux using the Build guide.
- Learn how project data is stored in the Project File Reference.
- Understand the database write-through persistence in the Project Storage Architecture.
- Keep releases solid by following the Test Plan.