Mike-Solar 49fed365a4 nodes: real OCIO color grading (linear + log) on the GPU
The OCIO grading nodes previously pushed null texture handles; they now
push real ShaderJobPayloads whose GLSL is the OCIO-generated dynamic
grading-primary GPU shader — the exact code the C++ path applies, so no
approximation:

- color: grading_primary_function_shader(style) builds a dynamic
  GradingPrimaryTransform (LIN/LOG) on the default config, extracts the
  GLSL via GpuShaderDesc (function 'ove_grading_primary', resource
  prefix ocio_, no LUT textures) and caches it per style + config id.

- eval: OCIO_GRADING_STUBS maps the two node type ids to the grading
  style; process_shader_job resolves the stub and splices it into the
  node's %1 marker (same wiring as the chromakey OCIO stub); the
  pipeline cache key folds the stub text so a config change recompiles.

- nodes: value() pushes a ShaderJobPayload with the C++ value()
  rewrite applied to the row — vec4 (RGBM x=master) grading inputs to
  the vec3 GPU uniform form (lin: contrast RGB=c*m, offset RGB=c+m,
  exposure RGB=2^(c+m); log: lift RGB=c+m, gain c*m, gamma c*m), plus
  pivot/saturation floats, the log pivotBlack/pivotWhite normalization
  range (0/1), clamp sentinels (NoClampBlack -1 / NoClampWhite 2),
  white>black enforcement per frame, and localBypass=false. Generated
  uniform names bind by name (the log node's OCIO_NAMESPACE_ id text
  normalizes to the ocio_ resource prefix).

- Tests: grading stub generation (analytic GLSL, cache) in color,
  end-to-end GPU exposure doubling for lin (+1 stop on 0.2 gray -> 0.4)
  and lift for log, node payload rewrite assertions, and the
  all-shaders sweep now retries grading stubs. oak-render 181,
  oak-node 441, oak-app 272 lib tests pass.
2026-09-02 20:04:55 +08:00
2024-05-13 14:49:53 +02:00

Oak Video Editor CI

中文

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

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 binary can be downloaded here:

v0.4.2

v0.4.1

v0.4.0

Building from Source

See docs/build.md for build instructions on Windows (MSYS2), Linux (Debian/Ubuntu, Fedora, Arch Linux), and macOS.

Documentation

Roadmap

Version Theme Core Deliverables Boundary Notes
0.3 Plugin Architecture Milestone Production-ready OpenFX host support Not about quantity of plugins, but "any OFX plugin loads without crashing"
0.4 Color, Audio & Performance .cube/.3dl support, scopes (waveform/vectorscope/histogram), three-way color wheels, waveform auto-sync, BWF timecode sync, audio meters (LUFS/VU), proxy media workflow, hardware-accelerated export (NVENC/VideoToolbox), batch render queue Combines the previous 0.4-0.6 scope into one usability milestone: color workflow, audio sync, and 4K/8K performance
0.5 Animation, Tracking & Collaboration Bézier keyframe curve editor, basic point tracking, image stabilizer, full multicam angle switching, OpenTimelineIO, EDL/XML import/export Combines the previous 0.7-0.8 scope into one timeline/interchange milestone
0.6 Stability Milestone Project file format freeze (backward compatibility promise), crash recovery, autosave, memory optimization "Feature freeze" testing period before 1.0
1.0 Production Ready Complete documentation, installers, known issues list, community support channels Declared "ready for serious projects"
S
Description
No description provided
Readme GPL-3.0
95 MiB
Languages
Rust 82.2%
HTML 11.9%
C 4.8%
C++ 0.7%
Shell 0.4%