Mike-Solar e85c6cf60a fix: OFX param instance lifecycle and thread-safety fixes
- Fix SIGSEGV in PluginMisc.Keyer by linking Param::SetInstance to instances.
    Olive's custom param instances (IntegerInstance, DoubleInstance, etc.) were
    not passing the SetInstance pointer to the OpenFX HostSupport base class,
    leaving _paramSetInstance as nullptr. When Keyer called paramSetValue during
    createInstanceAction, the suite function dereferenced the null pointer in
    paramChangedByPlugin(). Now newParam() passes 'this' to every constructor.

  - Fix render-thread crash when OFX plugins set params during rendering.
    MinOFX calls paramSetValue inside createInstanceAction from the render
    thread. SubmitUndoCommand() used to push undo commands directly to
    UndoStack, which modifies QAction state (GUI-only). Added IsGuiThread()
    check: non-GUI threads execute redo_now() and discard the command without
    touching the undo stack.

  - Enable PluginMisc.MergeOver and PluginMisc.Keyer integration tests.
    MergeOver now supplies both Source and Bg textures; Keyer uses U16 format.
    Both pass in the full test suite.

  - Make ViewerQueue thread-safe with QMutex around AppendTimewise/PurgeBefore.
    Adds copy ctor and assignment to support mutex-per-instance semantics.
2026-05-14 22:32:34 +08:00
2026-04-12 01:26:41 +08:00
2026-01-16 21:22:05 +08:00
2026-01-16 21:22:05 +08:00
2026-05-14 01:51:14 +08:00
2026-04-12 01:08:22 +08:00
2026-01-10 18:56:58 +08:00
2026-01-16 21:11:24 +08:00
2025-11-23 16:39:30 +08:00
2026-01-16 21:22:05 +08:00
2025-08-03 22:50:36 +08:00
2026-01-05 14:24:28 +08:00
2026-01-05 14:24:28 +08:00
2024-05-13 14:49:53 +02:00
2026-01-05 16:22:26 +08:00
2026-01-05 16:22:26 +08:00
2026-01-17 16:53:54 +08:00
2026-01-17 16:53:54 +08:00
2026-01-05 16:22:26 +08:00
2026-01-05 21:31:35 +08:00

Oak Video EditorBuild status

Oak Video Editor is a free non-linear video editor for Windows, macOS, and Linux.

Unfortunately, the original author has not submitted code updates for over 7 months, and no public contact information (email or otherwise) is available to reach them directly.

This project is a community-maintained fork of Olive Video Editor. screen

NOTE: Oak Video Editor is alpha software and is considered highly unstable. While we highly appreciate users testing and providing usage information, please use at your own risk.

Binaries

The original author compiled following binaries:

OpenFX Support TODO

  • Implement plugin discovery/loading from a given path and populate the cache (currently creates host/cache only). app/pluginSupport/OliveHost.cpp
  • Wire output clip image storage: allocate a backing buffer, set kOfxImagePropData, and update bounds/rowBytes before render. app/pluginSupport/OliveClip.cpp
  • Provide real input clip image fetches (currently returns an empty Image for inputs). app/pluginSupport/OliveClip.cpp
  • Ensure render path sets per-frame output data and handles ROD/bounds correctly. app/render/plugin/pluginrenderer.cpp
  • Add missing param instance types (String, Double3D/Integer3D, Group/Page, Custom/Bytes) and mapping to node inputs. app/pluginSupport/OlivePluginInstance.cpp, app/node/plugins/Plugin.cpp
  • Implement editBegin/editEnd, progress, and timeline hooks instead of stubs. app/pluginSupport/OlivePluginInstance.cpp, app/pluginSupport/OlivePluginInstance.h
  • Integrate persistent message handling with the app UI (currently TODO placeholders). app/pluginSupport/OlivePluginInstance.cpp
  • Decide and enforce project extent/fielding behavior instead of the current placeholder comment. app/pluginSupport/OlivePluginInstance.cpp
  • Add OpenGL texture render suite support or explicitly disable it (currently loadTexture returns null). app/pluginSupport/OliveClip.h
S
Description
No description provided
Readme GPL-3.0
73 MiB
Languages
C++ 87.8%
C 8.2%
CMake 3.3%
GLSL 0.5%