Repository navigation
Conversation
…1164) * Accept an Undefined Rewritten Track Language Before Restoring Tags HandBrake writes the video track language as und, so the track check that RestoreLanguageTags() runs before restoring the IETF tags failed every HandBrake deinterlace or re-encode of a file whose video track carries a language. The original stayed, and the file ended in error. A rewritten track whose language is undefined now passes the check, since the restore that follows sets it. A dropped track, a type change, or a different defined language still fails the rewrite. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Assert the Undefined Track Gets Its Language Back Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Limit the Undefined Language Exception to Video Tracks Swapped audio tracks written as und would otherwise take each other's languages, and only HandBrake's video track is written as und. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Test HandBrake Outputs That Drop an Undecodable Audio Track A deinterlace whose HandBrake output writes the video as und restores its language, and one whose output drops an audio track fails with the original untouched. A verify repair of audio with no decoder, such as encrypted audio, ends RepairFailed when the HandBrake fallback drops the track, rather than replacing the original with a file missing it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Prove the Track Check Alone Keeps the Original After a Dropped Track Let the HandBrake output verify clean in the undecodable audio test, as real output without that audio does, so the original stays only because the track check refuses it. Share one helper for writing a changed sample identify, name the video case undefinedvideo, and drop the comment that ARCHITECTURE.md already states. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Share the Changed Identify and Sample MkvMerge Fakes Through FakeTools Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Drop the Setup Calls That WriteRewriteIdentify Already Makes Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- 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 38 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. |
PR Summary by QodoRestore tagged video languages after HandBrake rewrites
AI Description
Diagram
High-Level Assessment
Files changed (5)
|
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 copy the agent prompt from any finding and feed it to your IDE agent |
There was a problem hiding this comment.
🟢 Approval recommended
No active blocking issues remain; the change includes regression coverage for accepted undefined video languages and continued rejection of dropped or mismatched tracks, with only non-blocking comment nits noted.
No open issues 🎉
What changed in this PR
Promotes develop to main with the HandBrake track-validation fix. Rewritten video tracks reported with an undefined language are accepted and restored, while dropped or mismatched tracks remain rejected.
Changes:
- Allow undefined rewritten video languages during track matching.
- Add regression coverage for HandBrake deinterlace and repair scenarios.
- Update test helpers and document the corrected behavior.
- Two non-blocking comment-clarity nits were identified in test comments.
This pull request is ready to be approved.
| File | Summary |
|---|---|
PlexCleanerTests/ReplaceOriginalTests.cs |
Adds regression coverage for undefined video languages, dropped tracks, and original-file preservation. |
PlexCleanerTests/FakeTools.cs |
Adds reusable identify-data mutation and conditional fake-tool response helpers. |
PlexCleaner/Convert.cs |
Accepts undefined rewritten video languages before restoring original tags. |
HISTORY.md |
Records the HandBrake language-restoration fix. |
ARCHITECTURE.md |
Documents the updated rewrite validation and language-restoration behavior. |
Review effort: Lite
Promotes
developtomain, carrying the fix for a 3.23 regression in HandBrake rewrites. The released 3.23.51 carries the regression.HandBrake rewrites
und. The track check that Restore IETF Language Tags After Every FFmpeg or HandBrake Rewrite #1152 added before restoring the IETF tags compared languages exactly, so it refused every such rewrite and the file ended in error.Verification
ptr727/plexcleaner:latest. Every deinterlace succeeds, track counts hold, video languages are restored, anden-GBanden-USregion tags survive the HandBrake run and the subtitle merge.🤖 Generated with Claude Code