7ebfebb29a21ff7790ddfd8dba5899ee9704374e
This commit resolves several categories of OFX plugin failures that
manifested as magenta (pink) render output or crashes:
1. Param default-value initialization
- IntegerInstance, DoubleInstance, BooleanInstance, ChoiceInstance,
and StringInstance now read kOfxParamPropDefault from the descriptor
at construction time. Previously, when no PluginNode was attached
(integration-test mode), get() returned 0/0.0/false, causing
generator plugins to receive invalid extent/format/PAR values and
crash in coordinate assertions.
- IntegerInstance also fixed uninitialized `id` that caused
kOfxStatErrBadHandle in CImg plugins.
2. Clip property initialization
- newClipInstance() now seeds pixelDepth and components from the
host VideoParams instead of leaving them as None. This prevents
Transform3x3Plugin and similar plugins from asserting on
getPixelComponentCount() during fetchClip inside createInstance.
- getAspectRatio() and getProjectPixelAspectRatio() now fall back
to 1.0 when the project's PAR is not yet set, avoiding division-
by-zero in coordinate conversion.
3. Frame-rate and time-base preservation
- setInputTexture() no longer overwrites the clip's frame_rate or
time_base with the input texture's values. Multi-input plugins
were crashing because setupClipPreferencesArgs throws when inputs
have mismatched rates.
4. Render loop hardening
- getClipPreferences() is now wrapped in try/catch so that frame-
rate mismatch exceptions mark render failure instead of aborting
the render thread.
- getRegionOfInterestAction() treats kOfxStatErrBadHandle as non-
fatal and falls back to default RoI.
- RenderPlugin syncs all clip instances after setVideoParam so that
getAspectRatio/getFrameRate return valid values before
createInstanceAction queries them.
5. Test suite updates
- All PluginMisc tests now use F32 input to match the host pipeline
default.
- CreateGradientTexture fixed to support F32 pixel format.
- Added CImgBilateral and CImgGuided_MultiInput tests.
- Secret parameters are now registered as hidden Node inputs so that
getClipPreferences can read them (fixes generator pink screen).
6. Debug logging in HostSupport
- clipGetImage and clipGetRegionOfDefinition now catch exceptions
and log the failing clip name for easier debugging.
Oak Video Editor
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.

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
Imagefor 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
loadTexturereturns null).app/pluginSupport/OliveClip.h
Languages
C++
87.8%
C
8.2%
CMake
3.3%
GLSL
0.5%