Skip to content

Produce full output for the setts timestamp repair - #836

Merged
ptr727 merged 1 commit into
developfrom
fix/setts-full-output-and-docs
Jul 14, 2026
Merged

Produce full output for the setts timestamp repair#836
ptr727 merged 1 commit into
developfrom
fix/setts-full-output-and-docs

Conversation

@ptr727

@ptr727 ptr727 commented Jul 14, 2026

Copy link
Copy Markdown
Owner

Follow-up to #835. Found by comparing a 3.21 regression run against the 3.20 baseline.

SetTimestamps (the lossless setts repair) honored --testsnippets, so in test mode it wrote a 30-second snippet. The byte-identical regression gate then compared the full source hash against the snippet output hash, failed, and marked a genuinely repairable file RepairFailed (e.g. Ghosted S01E04, which repairs correctly in production). More importantly, a snippet can not represent the whole file - some files pass on a snippet and fail on the full file - so the repair's gate and re-verify must cover the entire output.

setts is a fast stream-copy, so full output in test mode costs seconds. Unlike a re-encode, there is no reason to snippet it, and doing so undermines the validation. Drop .TestSnippets() from SetTimestamps.

Also included:

  • README release-notes edit: the summary now carries the current version only (the v3.20 section moved out; it lives in HISTORY).
  • AGENTS.md: note that README carries only the current version's summary.

207 tests pass; build, format, markdownlint clean.

🤖 Generated with Claude Code

setts is a lossless stream-copy repair, but it honored --testsnippets and
wrote a 30s snippet in test mode, so the byte-identical regression gate
(full source vs snippet output) failed and a genuinely repairable file
was marked RepairFailed. A snippet also can not represent the whole file
- some files pass on a snippet and fail on the full file - so the repair
must be validated on the full output. Drop TestSnippets from SetTimestamps
so the gate and re-verify cover the entire file.

Also carry the README release-notes edit (current-version summary only)
and note in AGENTS.md that README carries only the current version.
Copilot AI review requested due to automatic review settings July 14, 2026 02:43

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes a regression in the lossless setts timestamp repair path where --testsnippets caused SetTimestamps to emit a short snippet, breaking the byte-identical regression gate and re-verify that must validate the full output.

Changes:

  • Stop applying .TestSnippets() to FfMpegTool.SetTimestamps() so the repair always produces a full-length output for hashing + verification.
  • Update README release notes to keep only the current version summary, referencing HISTORY.md for older notes.
  • Document in AGENTS.md that README.md should contain only the current version's summary (older versions belong in HISTORY.md).

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
README.md Simplifies release notes to current-version-only summary and points to HISTORY for older notes.
PlexCleaner/FfMpegTool.cs Ensures setts repair outputs the full file even under --testsnippets, aligning with the byte-identical gate and re-verify.
AGENTS.md Captures the README release-notes convention (current version only; older notes in HISTORY).

Comment thread README.md
@ptr727
ptr727 merged commit ef79cd8 into develop Jul 14, 2026
15 checks passed
ptr727 added a commit that referenced this pull request Jul 14, 2026
Fast stream-copy and remux operations no longer honor --testsnippets, so remuxes and the lossless timestamp repair produce full output validated on the whole file. Kept on the re-encode and deinterlace paths. Also fixes a README release-note grammar nit. Follow-up to #836.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants