diff --git a/DOCS/MPV_BUILD_REPORT.md b/DOCS/MPV_BUILD_REPORT.md index 485345cd17..a340facfed 100644 --- a/DOCS/MPV_BUILD_REPORT.md +++ b/DOCS/MPV_BUILD_REPORT.md @@ -11,8 +11,8 @@ Phase 1 已在 DevEco Studio OpenHarmony SDK 6.1.1.125 / API 24 下生成真实 | MPV | `182fa6ca49f455cadb884858f386e2f00540aeb7` / 0.41.0-UNKNOWN | | FFmpeg | `3acec0a1af2dda0a0838689b8b8649e7deb080a0` | | libmpv | `build/ohos-arm64/prefix/lib/libmpv.so.2.5.0` | -| Size | 34,308,568 bytes | -| SHA-256 | `2de66d76a91b167b632bb824a2149f644c8e667bb2ebbd003e18c6c7e7eeca46` | +| Size | 34,314,184 bytes | +| SHA-256 | `80e4c6fda86d9822543615a97045fff3641e9125b23a4f736fb8511fe5a47790` | | Architecture / ABI | ELF64, little-endian, AArch64, System V ABI, shared object, SONAME `libmpv.so.2` | | Toolchain | OHOS Clang/LLD 15.0.4, target `aarch64-linux-ohos`, musl sysroot | | MPV / build files | 7:`ao_harmony.c/.h`、AO 注册、Meson feature、OHOS build script、依赖 allowlist;第三方依赖源码修改 0 | @@ -71,7 +71,8 @@ Phase 4.5 的 FFmpeg fork 独立维护于 ``` 脚本默认消费 `../Velix-FFmpeg-Harmony/build/ohos-arm64/prefix`,也可用 -`FFMPEG_PREFIX=/path/to/prefix MPV_BUILD_ROOT=/path/to/mpv-build` 覆盖。默认 +`FFMPEG_PREFIX=/path/to/prefix MPV_BUILD_ROOT=/path/to/mpv-build MPV_PREFIX=/path/to/mpv-prefix` 覆盖。切换脚本默认把 MPV 安装到 +`build/ohos-arm64/prefix-mpv-ffmpeg-harmony`,避免覆盖默认 prefix。默认 `build-mpv-ohos.sh` 与 `build-mpv-ohos-software.sh` 的原有前缀和 `harmony-ohcodec-gl=disabled` 行为不变。本次切换构建已通过 AArch64 ELF、符号 和动态依赖校验,但没有进入 GPU mapper 或设备硬解验证。 diff --git a/MEMORY.md b/MEMORY.md index 7f28b485f6..41ed770be7 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -5,7 +5,7 @@ - 基线:MPV `182fa6ca49f455cadb884858f386e2f00540aeb7`,分支 `harmony-port`。 - SDK:OpenHarmony API 24 / 6.1.1.125 / `aarch64-linux-ohos` / Clang 15.0.4。 - 关键结论:首版 GLES+EGL+libmpv Render API;OHAudio AO;官方 FFmpeg OHCodec 路线。 -- Phase 1 产物:`build/ohos-arm64/prefix/lib/libmpv.so.2.5.0`,AArch64 ELF,OpenGL Render API symbols 完整。 +- Phase 1 产物:`build/ohos-arm64/prefix/lib/libmpv.so.2.5.0`,AArch64 ELF,OpenGL Render API symbols 完整;当前默认重建大小约 34.3 MB。 - 远程:`origin` 为私有 Gitea 仓库,默认分支 `harmony-port`;`upstream` 为 MPV 官方仓库。 - Phase 4.5:独立 `../Velix-FFmpeg-Harmony`,分支 `harmony-ohcodec-export`,远程 commit `f1cc09cde1`;MPV 通过 `scripts/build-mpv-ohos-ffmpeg-harmony.sh` 选择其 prefix。 - Phase 2:`playback_lab/` 独立 HAP,XComponent/OHNativeWindow/EGL/libmpv/软件解码已通;实体设备待验。 diff --git a/memory/infra.md b/memory/infra.md index 003d055e27..c02f945683 100644 --- a/memory/infra.md +++ b/memory/infra.md @@ -22,3 +22,4 @@ - Phase 4 产物:`build/ohos-arm64/prefix/lib/libmpv.so.2.5.0`;软件构建位于 `build/ohos-arm64/build/mpv-software/libmpv.so.2.5.0`;HAP 位于 `playback_lab/entry/build/default/outputs/default/entry-default-unsigned.hap`。 - FFmpeg-Harmony:`../Velix-FFmpeg-Harmony`,origin `https://git.leee.xin/leeexin/Velix-FFmpeg-Harmony.git`,upstream `https://github.com/FFmpeg/FFmpeg.git`,branch `harmony-ohcodec-export`;prefix `../Velix-FFmpeg-Harmony/build/ohos-arm64/prefix`。 - MPV fork 接入:`scripts/build-mpv-ohos-ffmpeg-harmony.sh`;可用 `FFMPEG_PREFIX` 与 `MPV_BUILD_ROOT` 覆盖默认路径,默认 MPV/软件脚本不变。 +- MPV fork 输出:切换脚本默认安装到 `build/ohos-arm64/prefix-mpv-ffmpeg-harmony`,不会覆盖默认 `prefix`。 diff --git a/memory/projects.md b/memory/projects.md index 9feb0053fa..14d1fedecc 100644 --- a/memory/projects.md +++ b/memory/projects.md @@ -4,7 +4,7 @@ - 状态:Phase 4.5 CODE COMPLETE / DEVICE VALIDATION PENDING;GPU INTEROP MAPPER 未进入;FFmpeg-Harmony export contract 已完成独立构建/探针,实体机硬解验收未完成。 - 已完成:远程闭环、固定依赖、隔离工具链、C/C++ 探针、FFmpeg/OpenSSL/字体栈/libplacebo、AArch64 `libmpv.so.2.5.0`、ABI/符号/污染/许可证审计。 -- 产物:`build/ohos-arm64/prefix/lib/libmpv.so.2.5.0`,34,308,568 bytes;DT_NEEDED 含 `libohaudio.so`。 +- 产物:`build/ohos-arm64/prefix/lib/libmpv.so.2.5.0`,当前重建 34,314,184 bytes;切换构建位于 `build/ohos-arm64/prefix-mpv-ffmpeg-harmony/lib/libmpv.so.2.5.0`;DT_NEEDED 含 `libohaudio.so`。 - 已完成:独立 HAP、XComponent/OHNativeWindow、EGL ES3、libmpv OpenGL Render、软件解码本地 MP4 首帧、播放控制与释放重入。 - 已完成:`ao_harmony` PCM float32→S16 fallback、采样率/mono-stereo 协商、pause/resume/stop/flush/release、timestamp epoch、starvation/flush metrics;`build-all-ohos.sh`、video-only/audio-enabled 构建和 Playback Lab HAP 均通过。 - 已完成:OHCodec H.264/HEVC capability 查询、`hwdec=ohcodec` direct-surface 实验驱动、显式软件回退、Playback Lab requested/actual/metrics 诊断、软件/硬解/GL probe 构建矩阵;FFmpeg 未修改。 diff --git a/scripts/build-mpv-ohos-ffmpeg-harmony.sh b/scripts/build-mpv-ohos-ffmpeg-harmony.sh index aa24ba328e..87d3ffed03 100755 --- a/scripts/build-mpv-ohos-ffmpeg-harmony.sh +++ b/scripts/build-mpv-ohos-ffmpeg-harmony.sh @@ -5,6 +5,7 @@ set -eu PROJECT_ROOT=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd) FFMPEG_PREFIX=${FFMPEG_PREFIX:-$PROJECT_ROOT/../Velix-FFmpeg-Harmony/build/ohos-arm64/prefix} MPV_BUILD_ROOT=${MPV_BUILD_ROOT:-$PROJECT_ROOT/build/ohos-arm64/build/mpv-ffmpeg-harmony} +MPV_PREFIX=${MPV_PREFIX:-$PROJECT_ROOT/build/ohos-arm64/prefix-mpv-ffmpeg-harmony} test -d "$FFMPEG_PREFIX" || { printf 'Missing FFmpeg-Harmony prefix: %s\n' "$FFMPEG_PREFIX" >&2 @@ -12,4 +13,5 @@ test -d "$FFMPEG_PREFIX" || { } FFMPEG_PREFIX="$FFMPEG_PREFIX" MPV_BUILD_ROOT="$MPV_BUILD_ROOT" \ +MPV_PREFIX="$MPV_PREFIX" \ "$PROJECT_ROOT/scripts/build-mpv-ohos.sh" diff --git a/scripts/build-mpv-ohos.sh b/scripts/build-mpv-ohos.sh index 733cbe3c48..44b585b4b9 100755 --- a/scripts/build-mpv-ohos.sh +++ b/scripts/build-mpv-ohos.sh @@ -4,6 +4,7 @@ set -eu . "$(dirname -- "$0")/setup-ohos-env.sh" FFMPEG_PREFIX=${FFMPEG_PREFIX:-$PREFIX} +MPV_PREFIX=${MPV_PREFIX:-$PREFIX} BUILD=${MPV_BUILD_ROOT:-$OHOS_BUILD_ROOT/build/mpv} LOG=$OHOS_BUILD_ROOT/logs/mpv.log @@ -34,7 +35,7 @@ else fi if ! meson setup "$BUILD" "$PROJECT_ROOT" $setup_mode \ - --cross-file "$CROSS_FILE" --prefix "$PREFIX" --buildtype release \ + --cross-file "$CROSS_FILE" --prefix "$MPV_PREFIX" --buildtype release \ -Ddefault_library=shared -Dauto_features=disabled \ -Dcplayer=false -Dlibmpv=true -Dtests=false -Dfuzzers=false \ -Dgpl=true -Dbuild-date=false -Dplain-gl=enabled -Dgl=enabled \