Mike-Solar
a84e75ef47
change: UI and migrate to gtest
2026-07-27 05:27:32 +08:00
Mike-Solar
eb634b53ef
R7: pure C ABI display boundary + engine visibility closure
...
R7-A (Qwen 3.8 Max): oakengine/display.h rewritten to the POD contract
from r7-pure-abi-plan.md - oak_video_params everywhere, opaque
texture/frame handles with retain/free protocol (engine-heap control
blocks), OakSharedBuffer refcounted wrapper for the QVariant playback
path. All TexturePtr/FramePtr gone from app (47 sites).
R7-B (Qwen 3.8 Max): liboakengine.so exports 3486 -> 19 C++ symbols
(version script oakengine.ver: oakengine_* plus the documented
oakgl/oakvulkan dlopen plugin ABI). oakengine-obj OBJECT library feeds
both the shared lib and the test binaries (-rdynamic so dlopen'd
backends resolve engine objects).
Fix (Kimi K3): producer/consumer type mismatch - viewerdisplay
unpacks OakSharedBufferPtr but viewer.cpp pushed raw void* handles,
so no frame ever reached the display widget (all 5 vulkan viewer
tests timed out with 'never received a texture'). Producers now wrap
with oak_make_shared_frame / oak_make_shared_texture(retain).
Verified: build 0 errors, ctest 45/45, nm U _ZN5olive = 0 in
oak-editor/oak-render-worker/oak-cli, 19 exported C++ symbols in
liboakengine.so (all documented plugin ABI).
2026-07-27 00:54:46 +08:00
Mike-Solar
0aa5879f35
app: migrate all engine access to the C ABI facade (nm U _ZN5olive = 0)
...
Every app module now reaches liboakengine exclusively through
oakengine_* C calls, EngineEventBridge subscriptions and app-side
handle headers (cliphandle/keyframehandle/nodevaluehandle/oakvaluehelper).
Direct C++ command construction, engine signal connect()s, and engine
type usage in MOC-visible signatures are gone: 557 -> 0 undefined
olive:: symbols in oak-editor.
2026-07-26 22:43:21 +08:00
Mike-Solar
1384ad1e95
app: migrate the viewer panel to the facade playback engine
2026-07-20 18:55:04 +08:00
Mike-Solar
bb40b4923e
style: unify identifier naming per updated conventions
...
Automated with clang-tidy readability-identifier-naming (config added to
.clang-tidy) plus scripted passes, per the updated rules now documented
in CONTRIBUTING.md:
- types (class/struct/enum/alias/template params): PascalCase
- functions, variables, members: snake_case (incl. rational -> Rational)
- private/protected members: trailing underscore; static member
variables likewise (instance_, available_themes_)
- constants and enum values: snake_case (kLinear -> k_linear,
F32P -> f32p); ALL_CAPS reserved for macros
- macros: OAK_ prefix (OLIVE_ADD_TEST/OLIVE_ASSERT/OLIVE_CONFIG ->
OAK_ADD_TEST/OAK_ASSERT/OAK_CONFIG, GL_PREAMBLE -> OAK_GL_PREAMBLE,
include guards -> OAK_*)
- file names: all lowercase (Current/Plugin/OliveHost/OliveClip/
OlivePluginInstance -> current/plugin/olivehost/oliveclip/
oliveplugininstance)
- getters share the member name sans underscore, setters set_foo()
- Qt and third-party (OpenFX) virtual overrides and framework callbacks
keep their original names (exempt in .clang-tidy)
Manual follow-ups required where automation could not reach:
- string-based QMetaObject/SIGNAL/SLOT references updated to renamed
methods (AddTask, CreatedFile, DeleteSpecificFile, moveSelectionUp, ...)
- macro bodies referencing renamed methods (OLIVE_CONFIG,
NODE_DEFAULT_DESTRUCTOR, MANAGEDDISPLAYWIDGET_*)
- self-shadowing locals renamed where signals/methods became same-named
(size_changed, worker_count, selected_items, import param, filters)
- third_party OFX member/namespace usages restored (OFX::Host::*,
_created, _clipPrefsDirty, createInstance, clearPersistentMessage)
- STL protocol aliases restored (const_iterator) with .clang-tidy
ignore rules; qHash overloads restored
Full build and test suite pass: ctest 4/4, ~1960 gtest cases green.
2026-07-19 16:10:54 +08:00
Mike-Solar
f6211f97a5
Fix render worker reuse and stabilize out-of-process video rendering
2026-07-13 10:19:30 +08:00
Mike-Solar
bfb1b2fce4
update copyright back
2026-01-16 21:22:05 +08:00
Mike-Solar
b8669f6a11
Change project name;
2026-01-05 16:22:26 +08:00
Mike Solar
6fdfd03ffd
update: update copyright
2025-08-05 17:12:49 +08:00
Mike Solar
74f73ab3be
change: change code style to Linux style except indent.
2025-08-03 03:09:40 +08:00
itsmattkc
537908c605
footageviewer: auto switch waveform mode when clicking video/audio buttons
2023-03-20 16:51:39 -07:00
itsmattkc
5da72e4d35
Squashed commit of the following:
...
commit dec7ca6b96c58decf2c5e5194b665fa2342951b2
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Wed Feb 8 12:32:12 2023 -0800
moved previewautocacher to rendermanager
commit d289d74d82c3911f3fdaa707abe9994c7363594d
Merge: a8a049a28 70d34c674
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Wed Feb 8 12:15:31 2023 -0800
Merge branch 'master' into move-cacher-to-renderman
commit a8a049a2857c438cbab0f1ab21e3299fdfbf1fa1
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Wed Feb 8 11:18:25 2023 -0800
initial work
2023-02-08 12:40:19 -08:00
itsmattkc
dd9c52ab59
start moving core frameworks to external libraries
2023-01-19 09:51:47 -08:00
itsmattkc
c357b04e82
viewer: don't attempt to update still image
...
Fixes crash when playing audio with muxed still
2022-11-05 10:13:04 -07:00
itsmattkc
d1545745d8
various: moved time from viewer UI to viewer node
2022-10-23 20:56:04 -07:00
itsmattkc
42ba84bf5f
multicam: finished UI implementation
2022-10-03 17:24:09 -07:00
itsmattkc
8a2f2912b4
multicam: allow overrides by selecting multicam nodes in nodeview
2022-10-02 11:23:55 -07:00
itsmattkc
14c7bd6dbc
multicam: implemented queuing of future node selections during playback
2022-10-02 10:39:35 -07:00
itsmattkc
14bf515d3f
multicam: various improvements
2022-10-01 16:57:46 -07:00
itsmattkc
640e6741f4
multicam: prioritize current clip under playhead
2022-09-29 19:45:38 -07:00
itsmattkc
6e183fe4be
multicam: refactor to heavily optimize multicam monitor retrieval
2022-09-29 17:50:09 -07:00
itsmattkc
80a900d105
multicam: show highlight around selected source
2022-09-27 18:22:47 -07:00
itsmattkc
a6b8b7ccbc
multicam: finished usable implementation
2022-09-25 20:26:10 -07:00
itsmattkc
487cd166d7
start implementation of multicam panel
2022-09-21 13:16:19 -07:00
itsmattkc
d017d2c143
viewer: add shortcut to save frame as image
2022-09-16 12:19:47 -07:00
itsmattkc
bc9f8c2e3b
Merge branch 'master' into cache-update
2022-08-27 10:54:20 -07:00
itsmattkc
b361ba8c51
viewer: ignore scrub events when time changes programmatically
2022-08-21 10:03:07 -07:00
itsmattkc
54d0a94a20
Merge branch 'master' into cache-update
2022-08-18 08:12:46 -07:00
itsmattkc
25e94112f8
viewer: implement lookahead to ensure footage is ready in advance
2022-07-26 14:49:19 -07:00
itsmattkc
3948b77543
viewer: allow customizing subtitle font
...
Fixes #1980
2022-07-23 13:49:02 -07:00
itsmattkc
7e1792cfea
Merge branch 'master' into cache-update
2022-07-01 22:32:49 -05:00
itsmattkc
079d6beff2
timeline: separate markers and workarea
2022-06-27 23:39:31 -07:00
itsmattkc
63f74691a5
render: cleaned up threading
2022-06-25 09:59:43 -07:00
itsmattkc
15d6f407eb
viewer: implement playback resolution option
2022-06-22 23:55:30 -07:00
itsmattkc
3a7dfdb681
viewer: allow showing waveform and viewer simultaneously
...
Fixes #1959
2022-06-21 12:23:44 -07:00
itsmattkc
6bc84e00ae
viewer: add watcher destroyed slot
...
Prevents crashes
2022-06-06 20:17:28 -07:00
itsmattkc
9918af2614
Merge branch 'master' into hashremoval
2022-05-30 21:00:05 -07:00
itsmattkc
ca26f023f2
viewer: improved frame queuing
2022-05-30 20:55:59 -07:00
itsmattkc
9cc861cdd5
cache: cancel tasks on disable
2022-05-30 13:40:39 -07:00
itsmattkc
89b6cce2b2
Merge branch 'master' into hashremoval
2022-05-29 11:18:58 -07:00
itsmattkc
bbf6f8f9f9
export: fixed stills
2022-05-29 10:15:32 -07:00
itsmattkc
f124ad3178
cache waveforms at clip level
2022-05-22 20:54:59 -07:00
itsmattkc
e0bb31b199
remove shifts, operations, and make caches node-agnostic
2022-05-16 19:53:38 -07:00
itsmattkc
bfd6a407a5
Merge branch 'master' into hashremoval
2022-05-16 09:12:49 -07:00
itsmattkc
ea13f249b7
render: fixed threading regression
2022-05-15 21:36:40 -07:00
itsmattkc
81956d8869
viewer: allow queue some time to catch up
2022-05-15 21:13:24 -07:00
itsmattkc
07f92911cd
text: minor refactoring to make rect setting code more reusable
2022-05-13 08:41:22 -07:00
itsmattkc
1def68f1a4
viewer: allow adding objects with a rect
2022-05-12 13:40:11 -07:00
itsmattkc
501564fb22
ui: replace html edit in text node with edit in viewer button
2022-05-10 18:07:17 -07:00
itsmattkc
4b366a9b73
update copyright year to 2022
2022-05-10 10:38:56 -07:00