Commit Graph
65 Commits
Author SHA1 Message Date
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 e5eeaddf2f format: reformatting files 2026-07-13 15:30:43 +08:00
Mike-Solar d66779d281 Apply export color transform in render worker
The export color transform was passed to RenderTask as a ColorProcessor,
but the worker IPC render_frame message never carried it. The worker
always set the ticket's coloroutput to null, so frames were returned in
the project's reference space and encoded without the chosen output
transform (e.g. Rec.709 / sRGB), causing the exported video to look
wrongly tinted.

Serialize the ColorTransform through the render_frame control message
and reconstruct the ColorProcessor on the worker side before rendering.
Also expose ColorTransform as a Qt metatype so it can be stored in a
ticket QVariant.
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 b88b738071 project: moved color manager outside of node graph 2023-02-28 15:20:05 -08:00
itsmattkc aa6b77f800 exporttask: snap to timebase when exporting video
This is a bit of a hack to prevent #2119 from causing problems. The reality is this probably requires a deeper re-think of how the timeline should and shouldn't work - this issue is more of a symptom of something deeper than a simple bug in and of itself.
2023-02-01 00:40:06 -08:00
itsmattkc dd9c52ab59 start moving core frameworks to external libraries 2023-01-19 09:51:47 -08:00
itsmattkc 3853ef023e exporttask: make copy of project
Fixes #2037
2022-11-05 12:37:38 -07:00
itsmattkc 409f24be39 exportdialog: allow restoring parameters 2022-08-10 11:49:21 -07:00
itsmattkc 9012c27ee6 Merge pull request #1987 from ThomasWilshaw/nclc_tags
nclc tags
2022-08-07 23:03:06 -07:00
itsmattkc 9636ec202d render: allow forcing channel count 2022-07-28 08:57:18 -07:00
Thomas Wilshaw 9fa1ce00e5 Add basic nclc tag support
Sets nclc tags based on the selected output color space.

Also adds a Rec.709 OETF to the config
2022-07-26 20:19:23 +01:00
itsmattkc 12f9b1acfc export: allow exporting subtitles to sidecar files 2022-07-23 15:22:57 -07:00
itsmattkc bfd6a407a5 Merge branch 'master' into hashremoval 2022-05-16 09:12:49 -07:00
itsmattkc 4b366a9b73 update copyright year to 2022 2022-05-10 10:38:56 -07:00
itsmattkc 0538c01f45 remove hashtraverser 2022-05-09 18:22:32 -07:00
itsmattkc bb0fedabba simplified and optimized samplebuffer 2022-05-09 14:55:51 -07:00
itsmattkc b40a61c6ed rendertask: return errors and respond appropriately
Fixes #1348
2022-01-10 10:15:45 -08:00
itsmattkc 24a11e2dad fixed mistakes in export task 2021-11-25 15:12:44 -08:00
itsmattkc 65446fd70b export: use export timebase instead of original 2021-11-10 22:28:37 -08:00
itsmattkc d0bc01ebd4 export: use viewer params not export params
Fixes #1703
2021-08-14 11:19:54 -07:00
itsmattkc 310fd3541a various: greatly simplified job times
Hopefully this doesn't break everything
2021-07-11 23:33:21 -07:00
itsmattkc cc21ed37a7 implemented core subtitle support 2021-05-18 12:42:47 +10:00
itsmattkc 961889b38f exporttask: improved progress signalling 2021-05-13 22:59:36 +10:00
itsmattkc 15556c64ae encoder: write audio in segments
I'll be honest, this probably makes no noticeable difference at all. It should be faster and more efficient, but whether that translates into any tangible improvement is yet to be seen.
2021-05-10 00:44:08 +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 e2455fce2f renderer: fixed distorted video caused by exporting video with lower frame rate than sequence
Wow I thought this issue was 0.1 exclusive but the same bug was here in 0.2 I wonder if it's worth backporting it now that I know what the problem is.
2021-05-03 13:55:39 +10:00
itsmattkc 77d4b18a60 updated copyright year for 2021 [skip ci] 2021-04-17 18:56:50 +10:00
itsmattkc cb75e37e77 moved several files around
Mostly moved classes that became node derivatives into the node/ folder.
2021-04-08 12:15:59 +10:00
itsmattkc bb32048c65 use frame rate and timebase less interchangeably 2021-04-07 13:08:25 +10:00
itsmattkc 898ea25e89 finished merge of viewer and footage 2021-04-06 13:08:56 +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 441a459774 viewer: use label instead of media name 2021-01-09 10:38:04 +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 0d0766e4fb improved render channel count system 2020-11-15 22:16:40 +11:00
itsmattkc c9a8b96c89 reimplemented export process 2020-11-13 22:05:43 +11:00
itsmattkc 3c1ac3eeba upgraded to ocio v2 2020-11-11 21:53:24 +11:00
itsmattkc 1d61f89920 large scale renderer rework
- Abstracts all OpenGL functionality including UI objects
- Cleans up several rendering codepaths
- Improves threading functionality
- Removes old code and problematic functions
2020-11-10 11:24:51 +11:00
itsmattkc 6ecdb02fd0 okay maybe not 2020-11-08 00:47:59 +11:00
itsmattkc 07dc7104c5 made timerangelist a encapsulation rather than a derivation
Locks off functionality that really shouldn't be used.
2020-10-29 02:18:41 +11:00
itsmattkc b582843d27 moved things around and started rewriting render backend 2020-10-29 01:36:26 +11:00
itsmattkc f7ab0bb640 audio: rewrote audio cache to write to contiguous segments rather than one long file
Fixes issues with PCM file placement, optimizes some audio-based timeline
and cache operations, just generally a better approach.
2020-10-11 23:27:40 +11:00
itsmattkc f6760386ce renderer: improved handling of pixel aspect ratio and footage cache 2020-08-21 14:43:13 +10:00
itsmattkc edeeed49ba various: enabled config saving 2020-08-08 02:44:39 +10:00