Repository navigation
Sync rebuilt IJK three-ABI native bundles - #4265
Merged
Merged
Conversation
CarGuo
marked this pull request as ready for review
November 5, 2026 13:09
There was a problem hiding this comment.
🔵 Needs a closer look
Unresolved MediaCodec completion failures in both baseline and candidate builds, alongside unqualified x86_64/16 KiB playback and full GSY regression testing, require maintainer review of runtime risks.
No open issues 🎉
What changed in this PR
This PR syncs rebuilt IJK native bundles for ARM64, ARMv7 and x86_64. The reviewed documentation records the matched libraries’ provenance and integration requirements, with the H.264 crop workaround remaining off by default.
Changes:
- Adds source/dependency pins, exact library hashes, replacement instructions and runtime/security limits.
- Links both build guides to the new bundle record while preserving historical build references.
- Retains the earlier draft validation snapshot; the PR description reports newer ARM testing, with continuous decoder-completion failures still unresolved.
| File | Description |
|---|---|
doc/IJK_THREE_ABI_SO_UPDATE.md |
Records bundle provenance, hashes, integration requirements and validation limits. |
doc/BUILD_SO.md |
Adds a Chinese notice linking the rebuilt bundle record. |
doc/BUILD_SO_EN.md |
Adds the corresponding English notice and source-pin guidance. |
Review effort: Balanced
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This update imports the complete matched ARM64, ARMv7 and x86_64 IJK native tuples from merged IJK commit
896674e7a249f3d87a831adb2ac5c2b31d55aeff, including PR #2 sizing and the opt-in H.264 crop workaround. The crop option remains off by default.Integration testing — 2026-11-05
Tested head:
043a65e277c74a94b183d85c053826da9fbf6e9d. The maintainer requested merging this PR and testing both #4264 and #4265. These results supersede the earlier draft's “HTTPS not reached” observation for physical ARM testing, while retaining its original emulator failures and limits below.zipalign -c -P 16; SHA-256:7a118ae5184ffa7385d33eb590ce896d00c601c3cff3e48391b31675fa566bc6.Retained runtime failures — not resolved
The initial #4265 ARM64 continuous suite passed 7/9 procedures: HEVC and crop-enabled ordinary H.264 produced frames but did not complete within the original timeout. ARMv7 passed 9/9. Separate cold-process A/B controls for HEVC and crop-enabled H.264 passed all four checks across #4264/#4265.
One final identical nine-case continuous A/B sequence was then run, without retrying to obtain a green result:
The failure therefore also occurs in the existing #4264 baseline. Neither a common root cause nor absence of regressions has been proved. Native output/EOS ownership code is unchanged in the source comparison. The #4264 Java timeout stack includes
MediaCodec.native_dequeueInputBuffer; native stack reads were denied, and futex/CPU samples do not prove an EOS lock diagnosis. The #4265 timeout does not provide an equivalent Java call stack. No production workaround, assertion relaxation or SO change was made.An earlier shared-Surface test harness attempt also failed hardware selection assertions after Surface connection failures. It is retained separately; the final independent cases used fresh Surfaces and the original default codec selector. That harness correction is not a production lifecycle fix.
Remaining limits
IJK_THREE_ABI_SO_UPDATE.mdand build-guide draft wording remains the earlier evidence snapshot and still needs a later documentation sync.Earlier draft snapshot and retained emulator failure record
Draft only: do not merge
The native bundle and documentation are ready for draft review. This PR is not ready to merge or release, and does not claim usable HTTPS playback or complete 16 KiB runtime qualification.
Scope
896674e7a249f3d87a831adb2ac5c2b31d55aeff, including merged PR 开放接口控制播放暂停 #4 and the earlier PR 获取当前播放时间怎么得到啊 #2 output-format sizing fix.libijkffmpeg.so/libijksdl.so/libijkplayer.sotuple forarm64-v8a,armeabi-v7aandx86_64in both the standalone ABI module andgsyVideoPlayer-ex_so: nine unique SOs, 18 paths.doc/IJK_THREE_ABI_SO_UPDATE.mdwith exact SHA-256 values, source/dependency pins and runtime/security limits, and link it from both build guides.armeabi/x86, RTMP and the historical PR 获取当前播放时间怎么得到啊 #2 record unchanged.Verified for these exact binaries
acd037d290e50655be5028e705a5a8b6c68aae7a3683b356f64478e444d76d25before and after the installation control. It failed twice with SIGBUS on IncrementalFS, then loaded the original native tuple when the same APK was installed using--no-incrementalon ext4. Both failures remain recorded. This observes an installation-mode difference; it does not establish the low-level SIGBUS root cause or justify a production SO patch.Not verified / blocking merge
currentUser=-10000), system ANRs and a black screen blocked the emulator UI.Defaults and integration limits
mediacodec-h264-crop-workaroundstays 0. It is opt-in for a validated asynchronous IJK H.264 MediaCodec path and does not enable hardware decoding. Replace player/SDL/FFmpeg together; preserve the caller's existing option list.mediacodec-handle-resolution-change=1when already configured. AcceptedNEW_EXTRADATAhands ownership to the existing resolution-change path. Crop admission is bounded and can stop after description changes; baseline restoration is not arbitrary seek-history support. Coexistence does not make the legacy path loss-free.tls_verifystill defaults to 0. The smoke explicitly configurestls_verify=1and an app-private CA file built from guest-system PEM roots, with no hostname override. That configuration is not a successful runtime result or automatic Java trust-store integration.Merge gate
TLS negative cases and broader GSY/device regressions remain explicitly unverified risks; they are not additional required tests for this task. The current validation scope is exact-hash strict HTTPS decoded-frame playback on the authorized 16 KiB emulator, package checks and review of the retained failure evidence.
Keep this PR in draft until that scoped validation is reviewed. Do not merge unverified SOs or turn a native-load-only pass into a playback claim.