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
62f18125cb
export: dialog execution path now goes through the facade
...
- oakengine_export_render_ex covers the dialog's entire option surface
(formats, codecs, pix fmts, audio params, ranges incl. still frame,
subtitles, scaling, threads, custom OCIO color transform names,
per-codec key/value options) - zero feature reduction
- the dialog's Start now creates a FacadeExportTask that drives
oakengine_export_render_ex instead of constructing ExportTask in the
UI; progress flows through the facade callback and cancel through
oakengine_export_cancel (OAKENGINE_E_CANCELLED preserves the
keep-dialog-open semantics)
- two real fixes: audio sample format 0 no longer means an
AAC-unsupported u8_p (default is f32_p), and image-sequence exports
use the engine's real [#####] placeholder instead of a made-up -%04d
2026-07-20 11:06:46 +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
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
d1545745d8
various: moved time from viewer UI to viewer node
2022-10-23 20:56:04 -07:00
itsmattkc
2076d0b2c5
exportdialog: ignore preset combobox change when loading presets
2022-10-06 00:46:32 -07:00
itsmattkc
6e0c6cdc52
exportdialog: add option to reimport result
2022-09-16 12:35:40 -07:00
itsmattkc
d017d2c143
viewer: add shortcut to save frame as image
2022-09-16 12:19:47 -07:00
itsmattkc
f091ad5a47
exportdialog: remove unnecessary member
2022-08-15 16:24:34 -07:00
itsmattkc
c1dd45bb57
exportdialog: ignore scroll events on widgets
...
Fixes usability issue where scrolling tabs on the export dialog could inadvertently change parameters
2022-08-15 12:51:12 -07:00
itsmattkc
5853c114c2
exportdialog: implemented basic preset saving/loading
...
This may not work perfectly yet, but we can build upon it
2022-08-12 09:16:59 -07:00
itsmattkc
409f24be39
exportdialog: allow restoring parameters
2022-08-10 11:49:21 -07:00
itsmattkc
12f9b1acfc
export: allow exporting subtitles to sidecar files
2022-07-23 15:22:57 -07:00
itsmattkc
bbf6f8f9f9
export: fixed stills
2022-05-29 10:15:32 -07:00
itsmattkc
4b366a9b73
update copyright year to 2022
2022-05-10 10:38:56 -07:00
itsmattkc
9101f5dc49
implemented core audio recording support
2022-05-02 14:00:03 -07:00
itsmattkc
e0c8a2e569
export: allow running task in background
...
Realized the "Task" infrastructure completely permits this essentially as-is.
Fixes #542
2022-01-10 10:05:05 -08:00
itsmattkc
cc21ed37a7
implemented core subtitle support
2021-05-18 12:42:47 +10:00
itsmattkc
4942970c02
export: fixed many export formats including still image and image sequence export
...
Still incomplete, but does a lot towards #1345
2021-05-05 19:03:03 +10:00
itsmattkc
77d4b18a60
updated copyright year for 2021 [skip ci]
2021-04-17 18:56:50 +10:00
itsmattkc
4066fcba90
began merging footage and viewer
2021-04-05 16:41:37 +10:00
itsmattkc
9be014c0b6
refactored so sequence is again a derivative of viewer
2021-04-05 14:41:59 +10:00
itsmattkc
d7c5ac4b44
implement entire project in nodes
...
Project items are now represented directly in nodes opening up more versatility and possibilities. This is the first iteration of this and will be buggy. Need to test thoroughly.
2021-02-15 21:31:57 +11:00
itsmattkc
75d4cd899b
use hardcoded namespace
...
The macro defined namespaces confused the hell out of lupdate and more or less broke translations permanently. Looks like the only way we can do it is to have a hardcoded namespace, which goes against my instinct, but honestly how likely is it that we'll change the namespace anyway (I guess forks might want to do it, but that's their problem ;) )
2020-11-17 20:24:42 +11:00
itsmattkc
d241090a9f
finally updated the copyright year
2020-11-17 20:13:22 +11:00
itsmattkc
8a64ef75d9
implemented selecting custom export range
...
Fixes #1314
2020-11-17 09:43:43 +11:00
itsmattkc
c9a8b96c89
reimplemented export process
2020-11-13 22:05:43 +11:00
itsmattkc
5235975d6d
export: allow selecting output pixel format
2020-07-24 14:45:27 +10:00
itsmattkc
4c4bcb0989
moved simple ms to hh:mm:ss function to timecodefunctions
2020-05-24 17:40:30 +10:00
itsmattkc
0cf6c9a1f6
export: use codec IDs rather than strings
...
Vastly improves portability between library versions.
2020-05-21 03:04:38 +10:00
itsmattkc
87e7564222
cache: heavily reworked exporting for new system
...
Also cleans up cache in general and moves it to the Task infrastructure.
2020-05-19 23:35:17 +10:00
itsmattkc
b9cd83eff1
task: massively simplified task system
...
Made various changes and fixes to the task system:
- Tasks are built around QtConcurrent rather than QThread. Reduces
code complexity significantly.
- Task error reporting is now streamlined in both TaskManager and
TaskDialog.
- Moved ProjectImport/Save/LoadManager to the app/task folder
2020-05-19 02:44:32 +10:00
itsmattkc
a9208294a0
exportdialog: automatically snap resolutions to even numbers
2020-05-01 00:49:09 +10:00
itsmattkc
1c3c8cd9b2
began work on headless export path
2020-04-20 02:37:10 +10:00
itsmattkc
f5a9dee139
exportdialog: added elapsed/remaining time indicator
2020-04-08 01:48:03 +10:00
itsmattkc
1b4c241b5b
windows: implemented export progress on taskbar button
2020-04-06 18:13:07 +10:00
itsmattkc
1aa87cbda6
various: encapsulate all code in the olive namespace to avoid name collisions
...
Large-scale code cleanup. Also adds a license to the top of all files that were
missing it.
2020-04-06 15:29:53 +10:00
itsmattkc
1c063c5c11
export: began windows taskbar button progress feedback
2020-04-06 03:33:52 +10:00
itsmattkc
0f5cd40c45
exporter: add ability to cancel exports (including a confirm to cancel if the
...
user closes the dialog mid-export)
2020-03-03 02:37:18 +11:00
itsmattkc
78daf9e28a
exporter: updated exporter to function with new render system
2020-02-25 20:03:15 +11:00
itsmattkc
a3c932693a
exportdialog: use wait for close code from previous commit when closing the
...
export dialog
2020-01-22 19:51:57 +11:00
itsmattkc
b697d2faec
implemented settings for exporting ONLY video or ONLY audio
2020-01-08 02:59:30 +11:00
itsmattkc
1b844fb760
further progress on export dialog
...
Implemented setting up and running the export thread with valid parameters,
transformation matrix and color processor.
2019-12-20 04:39:11 +11:00
itsmattkc
7398cd3f1c
use viewer resolution/transform override to show cropping/stretching settings
2019-12-19 15:59:51 +11:00
itsmattkc
cb5a468b4a
implemented color management UI functionality in the ExportDialog
...
Frontend UI work in setting up color management when exporting.
2019-12-16 16:47:36 +11:00
itsmattkc
4bd8c0c850
filled out various further UI functions for the export dialog
2019-12-16 03:03:40 +11:00
itsmattkc
3f79845464
implemented export dialog functionality and some base formats/codecs to support
2019-12-16 01:21:30 +11:00