Repository navigation
Raise the Minimum FFmpeg Version to 8.0 - #1096
Conversation
GetClosedCaptions() passes -analyze_frames, which FFprobe added in 8.0. On an older FFprobe every file reaching closed caption detection failed, and with DeleteInvalidFiles on it was deleted. FFmpeg and FFprobe ship in one package at one version, so MediaTool.MinimumVersion holds one minimum per tool family rather than one per tool, and the startup gate checks both against it. The README, HISTORY, and ARCHITECTURE notes state the family minimum. Closes #1092 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 3 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
A recorded local strict-review pass covers head |
PR Summary by QodoRequire FFmpeg and FFprobe 8.0 at startup
AI Description
Diagram
High-Level Assessment
Files changed (6)
|
Code Review by Qodo🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)
Great, no issues found!Qodo reviewed your code and found no material issues that require reviewTip of the day💡 Did you know, you can route each severity your way: inline, summary, both, or drop |
There was a problem hiding this comment.
🟢 Approval recommended
No active review issues remain, and the changes consistently enforce and document the shared FFmpeg 8.0 minimum with updated coverage.
No open issues 🎉
What changed in this PR
This pull request raises the minimum supported FFmpeg tool-family version to 8.0 so FFmpeg and FFprobe support the -analyze_frames option used for closed-caption detection.
Changes:
- Applies a shared FFmpeg-family minimum version of 8.0.
- Updates version-gating tests for FFmpeg and FFprobe.
- Removes the former per-tool 6.1 override.
- Updates the README, release history, and architecture documentation.
- Minor nit: clarify locally why the family minimum is required in
MediaTool.
| File | Description |
|---|---|
README.md |
Documents FFmpeg 8.0 as the minimum supported version. |
PlexCleanerTests/FfMpegVerifyCommandTests.cs |
Tests the shared 8.0 minimum for FFmpeg and FFprobe. |
PlexCleaner/MediaTool.cs |
Defines the family-based minimum version. |
PlexCleaner/FfMpegTool.cs |
Removes the former FFmpeg-specific 6.1 override. |
HISTORY.md |
Updates the 3.23 release notes. |
ARCHITECTURE.md |
Documents family-based minimum-version enforcement. |
Review effort: Lite
Summary
FfProbe.Tool.GetClosedCaptions()passes-analyze_frames, which FFprobe added in FFmpeg 8.0. The startup gate admitted FFmpeg from 6.1, so on 6.1 through 7.x every file reaching closed caption detection failed. WithDeleteInvalidFileson, that file was then deleted.FFmpeg and FFprobe ship in one package at one version, so the minimum belongs to the tool family rather than to each tool.
MediaTool.MinimumVersionis non-virtual and family-keyed: 8.0 forToolFamily.FfMpeg, null for every other family.Tools.VerifyTools()checks FFmpeg and FFprobe against it at startup.FfMpeg.Tooland its option-version comment are removed.FfMpegVerifyCommandTestsgates both tools on one theory, and the distro version-line cases for 7.1.1 and 6.1.1 now expect a refusal.release/7.1fftools/ffprobe.chas noanalyze_frames, andrelease/8.0does. Ubunturolling, the Docker image base, ships FFmpeg 9.0.2, and 26.04 LTS ships 8.0.1.Closes #1092
Verification
dotnet test: 304 passed, 0 failed.dotnet format style --verify-no-changes --severity=infoanddotnet csharpier checkare clean.prose_lint.py --diffagainst the merge base is clean.local-strict-reviewpass over the full diff raised no findings.Dropped findings
Docs/ClosedCaptions.md:170says FFprobeanalyze_framesdetection "will be implemented when broadly supported", although it is implemented. Wording, on text this change did not touch.🤖 Generated with Claude Code