fix: 兼容 fpcalc 非致命解码退出码 - #6362
Merged
jxxghp merged 1 commit intoAug 19, 2026
Merged
Conversation
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.
MoviePilot V3 当前 Docker 基于 Debian Bookworm,其
libchromaprint-tools 1.5.1-2+b1存在已知的 FFmpeg 5 解码结束处理问题:fpcalc已输出有效指纹后仍可能报告End of file并以3退出。主程序同步、异步路径此前把所有非零退出码直接视为失败,导致可用指纹被丢弃。本 PR 将
0和3定义为可继续校验输出的退出码;两种情况下都必须通过现有 JSON、音频时长和指纹非空校验。其它退出码仍按失败处理,因此不会把空输出或真实解码失败当成有效结果。依赖包事实与处理边界:
1.5.1-2+b1,Debian #1062530 记录了有效指纹伴随rc=3的相同现象。1.5.1-7已带入对应修复。本 PR 不升级 Debian,也不把 Docker 替换为官方fpcalc 1.6.1,仅在主程序层兼容依赖已定义的非致命退出语义。验证:
1.5.1-2+b1均为有效 JSON +rc=3,Trixie1.5.1-7均为相同指纹 +rc=0;无效文件和无法生成指纹的严重截断文件均保持rc=2。fpcalc 1.5.1-2+b1验证同步、异步路径均可读取rc=3的有效指纹,rc=2无效文件仍被拒绝。python tests/run.py:5042 passed, 3 skipped。10.00/10,0 告警。pylint app仍为上游现有 lazy export 基线的 46 个E0611,评分9.98/10,本 PR 未新增同类问题。