Repository navigation
Drop FFmpeg Progress Lines from Parsed Regression Errors - #1181
Conversation
A failing FFmpeg run at default log level ends with a progress line, and the log carries it into a file's errors. Its fps, speed, and elapsed figures vary per run, and the shape normalizer leaves part of a fractional speed in place, so the reduce audit counted the line as a physical error shape no clip could match. Treat it as benign noise like the other host-dependent stderr. Refs #1174 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
A recorded local strict-review pass covers head |
|
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 8 minutes. View limit details
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Filter progress fields and test error extraction RegressionTests/corpus_common.py, RegressionTests/tests/test_corpus_common.py |
BENIGN_NOISE matches progress text with a numeric frame= field followed by speed=. The test verifies that extract_errors discards the progress fields and retains "real". |
Estimated code review effort: 2 (Simple) | ~7 minutes
Change: Bug fix
Possibly related issues
ptr727/PlexCleaner#1174— The issue describes an FFmpeg output side effect in regression tooling; this change filters matching progress text.ptr727/PlexCleaner#1177— The issue requests shape normalization for FFmpeg progress lines; this change adds the pattern and a parser test.ptr727/PlexCleaner#1171— The issue includes the corpus-tooling progress-line fix; this change implements that parser update.
Merge Risk: 
Minimal · previous review ae8ed
-
The change removes matching FFmpeg progress entries while retaining adjacent real errors. No actionable merge-blocking risk was identified.
Pre-merge checks: 
5
-
Full details: Docstring Coverage
-
Explanation
No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 2 files.
-
Finishing Touches
-
Generate docstrings
-
- Commit to this branch
- Create a new PR
Generate unit tests (beta)
-
- Commit to this branch
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
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.
CodeRabbit Verify
- Run CodeRabbit Verify to test the changes in this pull request.
PR Summary by QodoExclude FFmpeg progress lines from regression errors
AI Description
Diagram
High-Level Assessment
Files changed (2)
|
There was a problem hiding this comment.
🟢 Approval recommended
The review evidence lists no active issues, and the change is narrowly scoped: it adds a BENIGN_NOISE pattern for FFmpeg progress segments along with a unit test for that case.
No open issues 🎉
What changed in this PR
This PR stops FFmpeg progress lines from being counted as parsed regression errors. At default log level, a failing FFmpeg run ends with a line such as frame= ... fps= ... speed=2.56x elapsed=.... Its values change every run, and the existing normalization leaves a partial speed value in place. The reduce audit then counted it as a physical error shape that no clip could match. The fix adds a progress-line pattern to BENIGN_NOISE, the list of host-dependent stderr that is ignored. It is part of the regression tooling work tracked in #1174.
Changes:
- Adds a
frame=… speed=progress-line pattern toBENIGN_NOISEincorpus_common.py. - Adds
test_progress_line_droppedto confirm the progress segment is removed and the real error is kept.
| File | Description |
|---|---|
| RegressionTests/tests/test_corpus_common.py | Adds a unit test showing a progress segment is dropped while a real error in the same string is kept. |
| RegressionTests/corpus_common.py | Adds the progress-line pattern to BENIGN_NOISE, which extract_errors applies to each `" |
Review effort: Lite
Code Review by Qodo
1.
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
A recorded local strict-review pass covers head |
|
Qodo finding "Real decoder errors can disappear": fixed in 6849690. The progress-line alternative in |
Thanks for the update. Finding 1 — “Real decoder errors can disappear” is resolved in commit |
Summary
A failing FFmpeg run at default log level ends with a progress line (
frame= ... fps= ... speed=2.56x elapsed=...), and the process log carries it into that file's parsed errors. Its figures vary per run, anderror_shapeleaves part of a fractional speed in place (speed=N.56x), so the reduce audit counted the line as a physical error shape that no clip can match.The change adds the progress line to
BENIGN_NOISE, alongside the other host-dependent stderr that a clip is not required to reproduce.#1174 proposed taking only
VerifyMediafailures intoverify_errors. That would drop the catalog buckets that come from other operations. In the 3.23.53 full run,Container-Unsupportedcomes from MkvMergeReMuxToMkvfailures andEncode-EmptyOutputfrom FFmpegConvertToMkv. The maintainer chose this narrower change instead. The interlace scan's own exit-69 failure, which put theidettext in the catalog, is fixed at its source in #1180.Refs #1174
Verification
python3 -m unittest discover -s testsinRegressionTests: 46 tests passed, with a newtest_progress_line_dropped.ruff check,ruff format --check, andmypyare clean.corpus_common.pyand with this branch: each log loses exactly one error line, the progress line, and gains none.🤖 Generated with Claude Code
Summary by CodeRabbit