Skip to content

feat(pkgs): add public ffmpeg module package 0.0.1 (Form A) + house compat.ffmpeg pipeline#75

Merged
Sunrisepeak merged 2 commits into
mainfrom
feat/add-ffmpeg-module
Jul 18, 2026
Merged

feat(pkgs): add public ffmpeg module package 0.0.1 (Form A) + house compat.ffmpeg pipeline#75
Sunrisepeak merged 2 commits into
mainfrom
feat/add-ffmpeg-module

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

概要

登记公开 ffmpeg 模块包 0.0.1(Form A,linux-only),并把 compat.ffmpeg 描述符生成流水线收编进本仓。

[dependencies]
ffmpeg = "0.0.1"
import ffmpeg.av;   // C API 原名原样,仅告别头文件

内容

  • pkgs/f/ffmpeg.lua(Form A,同 imgui 形态):指向 mcpplibs/ffmpeg-m v0.0.1 tag tarball;FFmpeg 源码经其 compat.ffmpeg = "8.1.2" 依赖到达消费者(feat(pkg): compat.ffmpeg 8.1.2 — 全源码直编形态(config 快照 + 源列表) #74 的全源码直编形态)。linux-only(compat.ffmpeg 目前仅 linux-x86_64 快照;macOS 阻塞于 [bug] 依赖包的 [target.'cfg(...)'.build].sources 在被消费时不展开(root 构建正常) mcpp-community/mcpp#229)。
  • CN 镜像:gitcode mcpp-res/ffmpeg release v0.0.1,资产与 GLOBAL tarball 逐字节一致(sha256 e47dc968…49fb 双端核验)。
  • tests/smoke_ffmpeg_module.sh + ffmpeg-module job:沿用 imgui-module 例外通道(默认命名空间包暂不能做 workspace 成员),重播默认 index 后以真实消费者姿态 build+run;smoke 内先 mcpp index update(nasm 自举,mcpp#232 规避,置于重播之前防覆盖)。非 Linux 直接 SKIP。
  • tools/compat-ffmpeg/:fetch_upstream.sh / gen_config.sh / gen_descriptor.py 自 ffmpeg-m 迁入,生成器与其生成的描述符同仓。迁移回归:重跑流水线,pkgs/c/compat.ffmpeg.lua 除 2 行 regenerate 指向注释外逐字节复现(本次一并更新该注释)。
  • README 两处登记 + 设计文档 .agents/docs/2026-07-18-add-ffmpeg-module-plan.md(含 FFmpeg 版本升级 SOP)。

本地验证

  • lint(语法/必填字段/无前导 v/镜像表)+ mcpp xpkg parse
  • tests/smoke_ffmpeg_module.sh(mcpp 0.0.96,真实已发布 tarball):下载 → Form A 查找 → compat.ffmpeg 直编 → import ffmpeg.av; 运行 ✓(libavutil 60.26,4 解码器,358 demuxers)

备注

…g-m)

tools/compat-ffmpeg/{fetch_upstream.sh,gen_config.sh,gen_descriptor.py} move
in from ffmpeg-m so the generator lives next to the descriptor it generates
(ffmpeg-m keeps only the module layer + export-surface generator).
Migration regression: pipeline re-run here reproduces pkgs/c/compat.ffmpeg.lua
byte-identically except the two regenerate-pointer comment lines (included).
C++23 module layer over FFmpeg (import ffmpeg.av; C API names unchanged),
sources arriving via its compat.ffmpeg dependency (full source build).
GitHub tag tarball + byte-identical gitcode mcpp-res/ffmpeg CN mirror.
Validated like imgui-module (default-namespace exception): new
tests/smoke_ffmpeg_module.sh + ffmpeg-module job, linux-only.
Local: smoke passes with mcpp 0.0.96 against the published tarball.
@Sunrisepeak
Sunrisepeak merged commit 204fddf into main Jul 18, 2026
7 checks passed
@Sunrisepeak
Sunrisepeak deleted the feat/add-ffmpeg-module branch July 18, 2026 04:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant