Mike-Solar 4aa4d59770 feat: hide non-texture OFX params from node graph + host coordinate standardization
Hide non-texture OFX params from node graph
  --------------------------------------------
  OFX plugins like ColorCorrect expose dozens of scalar parameters as
  node inputs, making nodes extremely tall and pushing Source/Mask far
  down. Previously attempted via kInputFlagHidden, but that also hid
  them from the parameter panel.

  Fix: move the filter to NodeViewItem::IsInputValid() instead.
  For OFX plugin nodes (getPluginInstance() != nullptr), only
  kTexture inputs are rendered as ports. Scalar parameters remain
  fully visible in the parameter panel.

  Files: app/widget/nodeview/nodeviewitem.cpp
         app/node/plugins/Plugin.cpp

  Standardize OFX host coordinate system
  --------------------------------------
  Olive's OFX host had partial and inconsistent coordinate handling.

  1. Fix Project coordinate methods
     - getProjectSize() / getProjectExtent() / getProjectOffset()
       now multiply X by pixel_aspect_ratio(), returning canonical
       coordinates per the OFX spec.

  2. Fix Clip default RoD
     - OliveClipInstance::getRegionOfDefinition() default now returns
       {0, 0, width*PAR, height} instead of raw pixel coords.

  3. Add parameter coordinate system conversion
     - DoubleInstance / Double2DInstance / Double3DInstance now check
       _descriptor.getDefaultCoordinateSystem().
     - For kOfxParamCoordinatesNormalised:
         get: internal pixel value -> normalised (divide by extent)
         set: normalised plugin value -> pixel (multiply by extent)
     - DefaultValueForParam() also converts normalised defaults to
       canonical before storing in Node, keeping Olive internal/UI
       values consistently in pixel space.

  Files: app/pluginSupport/OlivePluginInstance.cpp
         app/pluginSupport/OliveClip.cpp
         app/pluginSupport/paraminstance.h
         app/node/plugins/Plugin.cpp
2026-05-14 21:54:18 +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-04-19 18:59:56 +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%