Files
oak-editor/docs/zh
Mike-Solar ba1143e7a3 render: the M4 playback prefetch — dependency window, priorities and backpressure
docs/zh/plans/render-pipeline-threads.md M4: the thread pipeline now
keeps its decode thread ahead of the render thread and the app's
playback window consumes in-process frames.

- Render queue: priority-ordered by JobSchedule.priority (Seek >
  Playback > Background, FIFO within a class), so interactive frames
  jump playback exports/autocache. Seek posts may over-admit the bound:
  priority only reorders queued jobs, so a full queue of background work
  must not park the UI thread until an export frame finishes.
- Decode queue: rendezvous Requests are served ahead of queued
  Prefetches (a frame the renderer needs never waits behind speculative
  decodes); Sync barriers stay FIFO. The queue is a bounded
  Mutex+Condvar structure, preserving the request backpressure and the
  wait_idle contract.
- Playback read-ahead: a Playback job's footage decode requests are
  derived from its montage/footage spec on post (same media time, size
  and force_format.unwrap_or(F32) as the eval) and queued immediately,
  so frame N+1 decodes while frame N runs its GPU passes.
- App window: PreviewWindow slots are generalized to
  PreviewSlot::{Shm, Video}; the pipeline's in-process TicketPayload is
  cached and consumed by cpu_frame exactly like a worker slot.
  PipelineBackend::preview_window_capacity reports the render-queue
  headroom, so playback posts are capped to what the queue can take;
  cancel_preview_frame drops queued frames the playhead has passed,
  matched on the full (sequence, frame, version) key so one monitor's
  window never drops the other sequence's same-numbered frame.
- Tests: decode-queue preemption/FIFO, render-queue ordering, request
  derivation, and deterministic end-to-end M4 tests: a prefetch that
  must be reused by the render request (LRU hit, single decode — the
  read-ahead claim is falsifiable), a parked-render-thread priority test
  where a full queue of background work still lets a Seek over-admit and
  run first, and a sequence-aware cancel test. The playback prefetch
  smoke asserts prefetches == distinct decodes == frames; it does not
  claim zero heap copies (Frame.data is deep-copied at the eval-cache
  and service-LRU boundaries today).
- bench_playback gains a pipeline mode with CPU (self+children) and
  first-frame latency; both backends now produce F32 frames so the
  comparison is like-for-like. The §3.4 backfill records the numbers:
  at the proxy size the pipeline is faster with a lower first frame; at
  1080p peak throughput is below the multi-worker pool, but that is an
  artifact of the decode still being CPU software (M5), not a case for
  pooling decode threads — GPU decode is a single device/queue and the
  zero-copy import shares one GPU memory pool, so the single decode
  thread stays the target shape.
2026-09-15 17:25:01 +08:00
..
2026-01-05 16:22:26 +08:00

home, title, heroImage, heroText, heroFullScreen, tagline, actions, features, footer
home title heroImage heroText heroFullScreen tagline actions features footer
true Oak 视频编辑器 /images/oak-icon.png Oak 视频编辑器 false 现代开源的非线性剪辑器,强调速度与清晰度。
text link type
阅读文档 /zh/build.html primary
text link type
查看工程文件 /zh/project-file-reference.html secondary
title details
快速剪辑 响应式时间线、智能缓存与高效媒体管理。
title details
面向创作者 简洁界面、可配置快捷键与清晰的工程结构。
title details
开源透明 公开开发流程,欢迎社区参与。
Copyright © Oak Video Editor

关于 Oak

Oak 视频编辑器是 Olive 的重命名分支,目标是打造更完善、更友好的剪辑体验。本网站提供构建说明、工程文件参考与测试计划等贡献者文档。

快速开始

  • 按《构建指南》在 Windows/macOS/Linux 上从源码构建。
  • 在《工程文件参考》了解项目数据结构。
  • 在《工程存储架构》了解数据库写穿持久化与持久撤销历史。
  • 按《测试计划》确保发布质量。

下载

v0.4.0

路线图

版本 主题 核心交付物 边界说明
0.3(当前) 插件架构里程碑 OpenFX 宿主支持完整可用 不追求插件数量,追求"任意 OFX 插件加载不崩溃"
0.4 调色、音频与性能 .cube/.3dl 支持、示波器(波形/矢量/直方图)、三向色轮面板、波形自动同步(双系统录音对齐)、BWF 时间码同步、音频表(LUFS/VU)、代理媒体工作流、硬件加速导出(NVENC/VideoToolbox)、批量渲染队列 合并原 0.4-0.6 范围,集中解决调色工作流、音频同步和 4K/8K 可用性
0.5 动画、跟踪与协作 贝塞尔关键帧曲线编辑器、基础点跟踪、画面稳定器、完整 Multicam 角度切换、OpenTimelineIO、EDL/XML 导入导出 合并原 0.7-0.8 范围,集中处理时间线高级能力和外部工具交接
0.6 稳定性里程碑 项目文件格式冻结(向后兼容承诺)、崩溃恢复、Autosave、内存优化 1.0 前的"封版"测试期
1.0 生产就绪 文档完整、安装包、已知问题清单、社区支持渠道 宣告"可用于严肃项目"