Commit Graph
36 Commits
Author SHA1 Message Date
Mike-Solar e346ea5338 feat(app): P5 — async full-res render, full preferences, shortcut map
- viewers show the 480px proxy immediately and a background thread
  fills the sequence-resolution frame (per-monitor in-flight job,
  generation-based staleness, playback skips full-res)
- preferences dialog complete: cache dir (now consumed by
  default_disk_cache_path), proxy policy/divider, snapshot interval
  (write-through era autosave), default transition length, audio
  in/out devices (new facade device-enumeration exports; audio init
  from config — playback was never creating the audio instance),
  language/theme/renderer backend, all persisted via config
- shortcut map (src/shortcuts.rs): space/J/K/L, I/O, S split, A/^A,
  ⌘Z/⌘⇧Z, ⌘N/⌘O/⌘S/⌘E/⌘Q, frame step, Home, track zoom; dispatch
  shares the menu action path and stays silent over modals
- screenshots: preferences dialog zh/en captured and reviewed
2026-08-16 18:05:03 +08:00
Mike-Solar f0517fe6af feat(app): UI walkthrough pass — faithful screenshots, dock labels, timeline clips, status bar, meter
- screenshot example inits i18n and captures both zh-CN and en-US
  (docs/screenshot-window{,-en}.png)
- dock tabs size to content (no more 64px truncation); viewer/panel
  titles follow the design (素材查看器·name etc.)
- mock project carries V1/V2 video + A1/A2 audio clips rendered as
  rounded green bars; timeline clip geometry/rounded corners match the
  design; status bar visible with full content; audio meter strip
  docked at the program viewer's right edge; project explorer rows
  have icons
- tests/waveform_e2e.rs: waveform cache extracts real peaks and hits
  cache on re-query (P4 acceptance)
2026-08-13 23:37:57 +08:00
Mike-Solar 18ff60f147 feat(engine): clip move, clip effect_input, mandatory static FFmpeg
- oakengine_sequence_move_clip implemented for real (oaktimeline
  TrackMoveBlockCommand; fixes the graph-ownership/gap-anchor/ripple
  trim bugs the stub was hiding); same-track via the frozen C ABI,
  cross-track supported by the module command
- oaknode clip blocks now declare a tex_in texture input and set
  effect_input to it, so timeline clips can host effect chains; facade
  test covers effect insert/remove on a real clip
- oakffmpeg-link: FFMPEG_DIR is now mandatory with a clear panic (a
  Homebrew upgrade left the system ffmpeg .pc pointing at a deleted
  dav1d Cellar path, breaking links); reads a git-ignored workspace
  .env for IDEs that cannot inject env vars (RustRover); links the C++
  stdlib for C++ codec libs (svt-av1)
- oakengine re-exports oaknode so tests share one crate instance;
  it_node uses the direct instance's value type where it calls the
  module FFI (the --workspace dev-dependency feature split builds
  oaknode twice)
2026-08-11 23:04:48 +08:00
Mike-Solar cac41d92c1 feat(rust): oakcodec/oaktask/oakplugin crates + oakotio + node/render/storage skeletons
- oakcodec: full crate incl. real FFmpeg decode/encode via ffmpeg-next
  (162 tests, 84.4% cov); new oakcodec_encoding_* metadata family
  (include/codec/format.h, C++ + Rust sides)
- oaktask: manager/tasks/project load-save incl. OTIO via oakotio
  (82 tests, 86.4% cov); concurrent render loop with reorder buffer
- oakplugin: M11 phase 1+2 — self-contained OFX host, GL path,
  ofxColour, pluginrenderer absorbed as render_driver (99 tests,
  81.7% cov); instance.h additions documented
- oakotio: native serde-based OTIO read/write (24 tests)
- oaknode gap fill: dragger/keyframe-helper/multicam C ABI families
  (113/113 gtest); fixes a latent NodeInputDragger segfault
- oaknode Rust skeleton: 43 built-in node type declarations
- oakrender/oakstorage: declaration skeletons (implementation pending)
- notes.md: gap analysis + tech-debt ledger
2026-08-09 05:49:15 +08:00
Mike-Solar 66d761b4b7 R8: finish app/ pure C ABI migration (P3-P9) and make OTIO required
- app/ no longer includes engine C++ headers nor holds engine C++ types:
  engine access goes through the oakengine C ABI plus C++ wrappers
  (oakutil/oaknode.h, oakutil/oakvideo.h) and app-local mirror types
  (tooltypes, trackreferencehandle, timelinecommonapp, keyframetypes,
  subtitleapp, serializedlayoutinfoapp, nodevaluehandle, sliderdisplaytypeapp)
- engine: new C ABI functions for block/track/clip/transition navigation
  and predicates, links, caches, waveform/playback, disk folder,
  sequence_track_list, node_free, footage_is_valid, block_get_track,
  get_brush; loadotio/saveotio ported to the current engine API
- OTIO is now a required dependency: CI and CD build it on every
  platform, FindOpenTimelineIO fixed for OTIO 0.16/0.19 (the old deps
  include requirement silently disabled OTIO everywhere), runtime
  libraries are bundled into packages and copied next to macOS binaries
  (oak_copy_otio_runtime)
- fix ProjectViewModel drag&drop mime read/write size mismatch (segfault)
- unify color label naming (k_olive -> "Oak") in the app-side mirror
- docs: OTIO required, FFmpeg minimum corrected to 6.0 (en/zh)
- gtest suite: 1925 passed, 0 failed
2026-07-31 22:46:52 +08:00
Mike-Solar 96defacacb chore: recovery backups, temp files and misc campaign artifacts
.bak LocalHistory recovery backups, .tmp0/.tmp1, .gitignore update,
reasonix.toml, convert_videoparams.py. Kept as-is from the campaign
branch; cleanup can happen separately on main.
2026-07-26 22:43:42 +08:00
Mike-Solar 2a11988b77 dpcs: Update build instructions 2026-07-13 14:32:17 +08:00
Mike-Solar a2af4b5bf6 fix ci 2026-06-03 14:52:32 +08:00
Mike-Solar e6fe406318 fix Ubuntu and Windows CI 2026-05-28 23:26:33 +08:00
Mike-Solar e851653fa3 尝试修复粉紫屏未果 2026-01-16 21:11:24 +08:00
Mike-Solar 0323c74c83 添加文档 2026-01-05 02:26:20 +08:00
Mike Solar b649b5e1bd change: Switch to offical OpenFX Support. Still can't compile. 2025-09-03 21:14:56 +08:00
Mike Solar 65ab76edc8 fix: fix exceptions when import video 2025-08-03 02:06:45 +08:00
Mike Solar 5f9508434f 试图解决编译错误 2025-06-18 08:54:06 +08:00
elsandosgrande fc64f9e8a4 [skip ci] .gitignore: Ignore compile_flags.txt 2022-10-08 15:36:09 +02:00
elsandosgrande 44b14419f9 [skip ci] .gitignore: Ignore .cache directory 2022-01-20 10:03:55 +01:00
elsandosgrande fc86d46f03 [skip ci] .gitignore: Ignore VS Code workspace files 2021-10-03 02:01:08 +02:00
Simran 82347ccda6 Limit build*/ and docs/ to top level, ignore out/ at top level 2020-10-29 17:24:34 +01:00
Simran Spiller 8c1f7d6d94 Cleanup and add a few more gitignores 2020-10-29 11:16:03 +01:00
Simran Spiller 493babab59 Update Qt gitignores 2020-10-29 11:15:35 +01:00
Thomas Wilshaw 49b8e2bfab gitignore updates for Visual Studio with CMake
Using Visual Studio and it's built in CMake generates a folder called .vs and a
JSON file of CMamke settings called CMakeSettings.json. These have both been
added to the .gitignore file.
2020-05-07 13:28:21 +01:00
itsmattkc ccb02d30aa colormanager: implement default config 2020-04-22 05:08:33 +10:00
itsmattkc 48a1f20ff3 git: ignore "build" folders 2020-04-06 23:40:01 +10:00
itsmattkc ea4e142e0c added history to gitignore 2019-07-16 04:44:31 -04:00
Troy James Sobotka 44f81693ed Add VSCode to .gitignore
Subject says it all. Ignore all VSCode
files.
2019-05-02 11:05:34 -07:00
Matt Mayfield 2d5d86e25e Add Qt artifacts to .gitignore 2019-02-27 08:31:00 -06:00
itsmattkc c3373524b1 giant rendering overhaul and many small fixes 2019-02-25 13:47:18 -08:00
itsmattkc 0781e9bb09 added gpl header to all source files 2019-02-15 04:38:09 -08:00
itsmattkc 671000836e documented labelslider 2019-02-15 02:07:28 -08:00
itsmattkc cf92e58ea8 merged with master 2019-02-12 16:19:51 -08:00
itsmattkc b0b26dbd8a fixed #340 2019-01-21 16:26:54 +11:00
itsmattkc b264680159 added and tweaked effects 2018-11-15 22:56:26 +11:00
itsmattkc a7618da329 fixed timeline getting stuck resizing tracks on slip tool 2018-11-14 09:00:24 +11:00
itsmattkc c957780a9c rewrote undo system #72 2018-07-13 19:07:01 +01:00
itsmattkc a31a3d8c75 fixing hilarious linking bug 2018-07-07 00:12:03 +01:00
itsmattkc 083f7daf18 refactored clip references and improved audio hotfix 2018-07-06 23:58:21 +01:00