Add full source parity validation workflow
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled

This commit is contained in:
mes123456
2026-09-07 16:45:07 +08:00
parent a3588d41a3
commit f68c6c9678
59 changed files with 4556 additions and 842 deletions

View File

@@ -0,0 +1,38 @@
# WBV2-P1128-000: ffmpeg.wasm movie codec module
- task: `WBV2-P1128-000`
- parent: `WBV2-P1127-000`
- status: `done`
- gap: `workflow:sequencer_movie_codec`
- ownerFamily: `MEDIA`
- targetImplementationClass: `LOCAL_BOUNDED`
## 目标
使用本地 ffmpeg.wasm Worker 作为 Chromium HTML media 解码失败时的 MOVIE probe/proxy fallback;核心 JS/WASM 同源懒加载,输入和输出均 hash-bound。
## 输入与范围
- Dependencies: `web/package.json`, `web/package-lock.json`
- Protocol: `web/protocol/sequencer.ts`
- Runtime: `web/app/src/sequencer/SequencerCodecProbe.ts`, `web/app/src/sequencer/FFmpegMovieProbe.ts`, `web/app/src/sequencer/ffmpeg-movie-probe.worker.ts`, `web/app/src/sequencer/SequencerMediaProxyCache.ts`
- Local core: `web/app/src/vendor/ffmpeg/ffmpeg-core.js`, `web/app/src/vendor/ffmpeg/ffmpeg-core.wasm`, `web/app/public/vendor/ffmpeg/ffmpeg-core.js`, `web/app/public/vendor/ffmpeg/ffmpeg-core.wasm`
- Upstream source: `third_party/ffmpeg.wasm-source-f876f907c7e9b9bf51d4ed0b913a855a63ae63fc.tar.gz`
- Production test: `web/tests/e2e/ffmpeg-movie-probe-production.spec.ts`
## 验收
```bash
npm --prefix web run typecheck
npm --prefix web run build
WEB_TEST_PORT=5342 npm --prefix web run test:e2e -- --workers=1 tests/e2e/ffmpeg-movie-probe-production.spec.ts
```
必须记录原生 HTML media 失败后的 ffmpeg.wasm 正例、metadata/frame 输出、损坏/identity/runtime 负例、AbortSignal cancellation、Worker termination、cache manifest identity 和 Chromium。历史 M11 MOVIE golden 不重写;H.264/浏览器解码差异留在新 capability receipt。
## 交付与回滚
- Receipt: `tests/golden/WBV2-P1128-000/module-receipt.json`
- Manifest: `tests/golden/WBV2-P1128-000/manifest.json`
- Status: `docs/status/WBV2-P1128-000.md`
- 回滚:恢复 P1127 manifest 为 queue parent,保留 ffmpeg 源码下载和依赖变更供后续复用。