Files
workinf_Blender_Wasm/docs/status/N-021.md
2026-08-14 22:32:09 -04:00

54 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# N-021 Sequencer 与音频
状态:`BLOCKED`strip schema、真实 Main reader、确定性时间编辑、长媒体有界索引/seek/cache
和 codec 能力门已落地Main 写回、完整媒体解码/渲染、音频波形和服务端编码仍未实现)
## 已验证切片
1. N-021-A部分版本化 `SequencerTimelineIR` 覆盖 Scene、Movie、Image、Sound、
Effect、Meta strip、channel、帧范围、source range、speed、proxy 和依赖strip、
image、dependency 数量以及帧范围都有预算,资源路径经过项目沙箱规范化。
2. N-021-B部分`MOVE``TRIM``SPLIT` 以 revision 乐观并发控制作用于内存
timeline编辑后重新解析依赖和预算锁定 strip 与 stale revision 会拒绝。
3. N-021-B/C`sequencerSourceFrame` 对 speed、trim、split 使用确定性的 source-frame
映射,避免左右片段复用越界源帧。
4. N-021-B/C部分`resolveSequencerFrame` 在切分边界解析当前顶层 strip、source frame
与依赖META 覆盖的子 strip 和 inactive dependency 不会泄漏到渲染帧。
5. N-021-C/D运行时只报告 WebCodecs/HTMLMedia 需要精确 probecodec 必须
出现在已验证 MIME 集合中才可放行,本地编码固定为 `BLOCKED`
6. N-021-A部分Blender 5.2 `Scene.ed/Editing.seqbase` 读取 Scene、Movie、Image、Sound、
Meta 和协议支持的 Effect显示范围由持久 `start/startofs/endofs/len` 计算,保留 channel、
mute/lock、相对媒体路径、24/1.001 FPS 和 effect input stable ID。绝对路径、未知类型、
坏依赖或超预算将 Scene sequencer 标为 `BLOCKED`
7. N-021-Btransition 子集CROSS/GAMMA_CROSS 可按半开显示区间确定性解析 `[0,1)` 进度,
保持 Blender `input1,input2` 顺序,并为两个活动依赖返回各自 source frame越界、依赖缺失、
muted 输入和非 cross effect 拒绝。
8. 桌面 Blender 5.2 fixture 经 WASM/Worker 后,在真实 CROSS 中间帧得到 factor 0.5;两个单张
Image strip 的 source range 为 `0..1`,显示 20 帧仍固定到 source frame 1不伪造成图像序列。
9. V1 long-media 门使用本地 261-byte PNG 与 16,044-byte WAV 建立 1,000,000 帧、10,001
strips 时间线1,024-frame bucket index 仅产生 11,914 references不按总帧数展开 JSON。
起点/中点/终点、64 次确定性随机 seek、连续 scrub 最新请求胜出和 index/seek/decode 取消均通过。
10. preview cache 使用 20 KiB 显式 byte budget/LRU随机 seek 发生真实淘汰且当前 audio/image key
仍 residenttimeline/current frame/asset hashes 作为内容寻址 session manifest 写入 OPFS终止
StorageWorker 与 media Worker 后在 frame 765432 恢复。session SHA-256 固定为
`d2e7e3c5ed9ae4fda6fe358cebb474f5774f1d2037dff3df9b6dfde9e0bebd2d`
11. 上述门只放行 fixture 的 IMAGE/SOUND 原始本地资源读取,不声称 WebCodecs MOVIE decode、
waveform/proxy 生成或最终编码完成;`video/mp4` 和 local encoding 仍结构化阻断。
## 仍然阻断
- N-021-A/BMain strip 写回、非 CROSS transition/modifier 完整参数、undo/redo 和 save/reopen
基础真实 reader 与 CROSS/GAMMA_CROSS 帧描述已完成。
- N-021-CWebCodecs 精确 seek/decode、音频 waveform、proxy 生成、A/V sync、丢帧和
损坏媒体处理。
- N-021-D浏览器不支持的 codec、混音与最终编码的服务端 Blender job。
- N-021-EV1 有界 Chromium/OPFS 长媒体门已完成;完整桌面/Chromium 解码/渲染 golden 仍阻断。
## 验收
```bash
WEB_TEST_PORT=5321 npm --prefix web run test:e2e -- --grep "N-021 sequencer"
npm --prefix web run test:sequencer-main-reader
npm --prefix web run test:long-media-performance
```