Commit Graph
152 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 caafac4203 sync: masked waveform correlation, stretch sync, manual start time
- Waveform sync no longer treats uncached waveform regions as silence:
  the envelope extraction now reports a per-window validity mask and the
  correlation skips invalid windows on either side, improving accuracy
  for partially cached clips
- Add stretch/speed sync: AudioWaveformSync::EstimateStretchAndOffset
  searches a playback-rate range plus offset, and a new timeline
  context action 'Synchronize by Waveform (Adjust Speed)' applies the
  estimated rate as a clip speed change (with undo) when plain offset
  alignment is inconclusive
- Footage properties dialog gains a Source Start Time field so the
  value used by source-time sync can be viewed and edited manually
  instead of relying solely on auto-detected metadata; applied via an
  undo command, with Footage::ClearSourceStartTime() for removal
- Regression tests for masked correlation, stretch estimation, the
  envelope validity mask, and source-start-time set/clear
2026-07-16 23:09:12 +08:00
Mike-Solar ddca6a5e01 proxy: add dedicated Proxy dialog and preferences fields
- New ProxyDialog (Tools > Proxy Settings..., plus 'Proxy Settings...'
  in the project panel and timeline Proxy submenus) unifying global
  proxy settings, per-footage custom presets, generation and deletion
  in one place instead of three scattered entry points; this also fixes
  the Tools menu action opening the wrong preferences tab
- Preferences Disk tab gains an 'include audio in proxies' checkbox and
  an ffmpeg executable path field (blank = auto-detect)
- Add ProxyDialog smoke tests
2026-07-16 22:53:13 +08:00
Mike-Solar 8ae8e3a159 Implement proxy media workflow 2026-07-13 10:19:29 +08:00
Mike-Solar 9c1fba4932 Add timeline audio sync actions 2026-07-13 10:19:29 +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 d0f16ef88e timeline: vastly improve behavior when scrolling and zooming 2023-02-28 20:39:02 -08:00
itsmattkc 3978a8501a timeline: implement select to seek and seek to select 2022-10-23 22:28:35 -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 a6315a780d timeline: started implementation of multicam function 2022-10-02 12:25:01 -07:00
itsmattkc df97df635d timeline: implement nest function
Also includes some improved cache/request code
2022-10-01 13:04:51 -07:00
itsmattkc d0e12ce607 timeline: add options for manually caching and discarding parts of clips 2022-09-13 19:19:42 -07:00
itsmattkc 571be3d28d timeline: added thumbnail modes that affect how much is rendered 2022-09-06 16:06:26 -07:00
itsmattkc 54d0a94a20 Merge branch 'master' into cache-update 2022-08-18 08:12:46 -07:00
itsmattkc f18461e69b timeline: allow pasting nodes into or over clips 2022-08-15 11:06:34 -07:00
itsmattkc 402c4e1694 ui: move zoom scrolling option to preferences 2022-08-12 09:16:12 -07:00
itsmattkc f2e604c2cb ui: add rename shortcut 2022-07-22 13:25:46 -07:00
itsmattkc 7e1792cfea Merge branch 'master' into cache-update 2022-07-01 22:32:49 -05:00
itsmattkc ac207e8fe7 timeline: implement add default transition
Fixes #1939
2022-06-28 12:09:10 -07:00
itsmattkc 89927c71ff implemented reveal in footage viewer option
Fixes #1958
2022-06-27 23:40:05 -07:00
itsmattkc e3830116b0 clip: implement auto-cache option 2022-05-30 08:59:56 -07:00
itsmattkc 60f7f06de4 implemented base for thumbnail display 2022-05-25 11:18:08 -07:00
itsmattkc e0bb31b199 remove shifts, operations, and make caches node-agnostic 2022-05-16 19:53:38 -07:00
itsmattkc 7130371690 timeline: improved subtitle import behavior 2022-05-16 08:37:14 -07:00
itsmattkc f17c119c29 timeline: handle users deleting tentative subtitle track
Fixes potential crash if users try to do this
2022-05-11 13:47:12 -07:00
itsmattkc 182e1599af keyframes: implemented copying/pasting 2022-05-10 15:42:09 -07:00
itsmattkc 4b366a9b73 update copyright year to 2022 2022-05-10 10:38:56 -07:00
itsmattkc 494370cc49 timeline: add rename action
This used to be possible in properties, but then the properties action changed. Oops.
2022-05-04 11:04:34 -07:00
itsmattkc 82bd6a103c timeline: implement reveal in project action 2022-05-03 14:23:41 -07:00
itsmattkc 9101f5dc49 implemented core audio recording support 2022-05-02 14:00:03 -07:00
itsmattkc e6d4fe43de reworked and vastly improved snapping subsystem 2022-05-02 00:01:49 -07:00
itsmattkc f7396de121 markers: reimplemented copy/paste 2022-05-01 22:33:58 -07:00
itsmattkc cdcd83c09a ported seekablewidget to timebasedview
Cuts down on a lot of code duplication and opens up usage of the new TimelineViewSelectionManager framework
2022-05-01 15:45:20 -07:00
itsmattkc e8dde836e3 Merge branch 'master' into pr/1717 2022-05-01 10:58:44 -07:00
itsmattkc 60f80d4a14 ui: moved timeline selection signal queue to timeline
Probably a safer way to do this
2022-04-12 09:28:51 -07:00
ThomasWilshaw 02b9a38737 Merge branch 'master' into marker 2022-01-28 22:30:29 +00:00
itsmattkc cce379ad22 handle cache properly in ripple delete 2022-01-28 13:49:49 -08:00
itsmattkc 576ea8e81f refactored copy/paste code for new serializers
Vastly improves code quality and reusability
2022-01-12 16:34:40 -08:00
itsmattkc 3c95ff7ac8 recalculate selected nodes on pointer operation 2021-12-29 00:54:48 -08:00
itsmattkc 46bf3334f5 reworked reselection code
Fixes #1811
2021-12-29 00:42:59 -08:00
Thomas Wilshaw 9eef02b446 make sure clip markers in timeline refresh as soon as marker is edited 2021-10-26 00:37:53 +01:00
Thomas Wilshaw 76e55a857f Make markers copy/paste-able 2021-10-22 22:15:52 +01:00
itsmattkc 3fccfecd7e add subtitle track when switching to add tool
Fixes #1709
2021-09-03 17:02:09 -07:00
itsmattkc c3d30f1b77 Merge branch 'master' into transition-offsets 2021-08-02 14:20:56 -07:00
itsmattkc 438cce1ce5 widget: use rational for internal playhead value
Fixes #1688
2021-08-02 10:55:01 -07:00
itsmattkc 4510f6d36a timeline: add move in/out to playhead
Fixes #1691
2021-08-02 07:50:36 -07:00