Log full file paths and surface interlaced detection source#809
Merged
Conversation
Media logs identified files by base name only, which is ambiguous when
same-named files (e.g. 4K vs 1080p) live in different folders. Log the
full path in ProcessFile, SidecarFile and ProcessDriver media lines,
including the track dumps (via MediaProps construction).
Interlaced detection:
- FindInterlacedTracks is a pure predicate; it outs an FfMpegIdetInfo
that is non-null only when the idet scan detected interlacing (null
for a container metadata flag).
- DeInterlace logs a single warning that reports how it was detected
(Detected by: Idet / Metadata flag) and, for idet, extracts the
MultiFrame evidence (percentage and field counts) from the out object.
Also enrich "Tags detected" (per-tool) and "Cover Art detected" (format),
and normalise the log placeholder to {FileName} everywhere ({File} and a
stray {fileName} renamed).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR improves log disambiguation and troubleshooting for media processing by switching media-related log lines from base names to full paths and by making interlaced detection logs explicitly report the detection source (metadata flag vs FFmpeg idet scan), including idet evidence when applicable.
Changes:
- Update media/sidecar/process-driver logging to emit
FileInfo.FullName(full paths) instead ofName(base name) for clearer identification. - Refactor interlaced detection flow so
FindInterlacedTracksbecomes a pure predicate and returnsidetevidence only when interlacing was detected by scan;DeInterlacelogs a single, source-specific warning. - Normalize structured log placeholder naming to
{FileName}for consistency.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| PlexCleaner/VideoProps.cs | Normalizes {FileName} placeholder for cover art track logging. |
| PlexCleaner/SidecarFile.cs | Switches sidecar/media log lines and MediaProps construction inputs to full paths. |
| PlexCleaner/ProcessFile.cs | Switches many process log lines to full paths; enhances tags/cover-art logs; refactors interlaced detection + logging to surface detection source and idet details. |
| PlexCleaner/ProcessDriver.cs | Switches driver/test logs to full paths and normalizes {FileName} placeholders. |
This was referenced Jul 9, 2026
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.
Why
Media log lines identified files by base name only, which is ambiguous when same-named files (e.g. 4K vs 1080p
Movie (2020).mkv) live in different folders — you can't tell which one a warning refers to. Interlaced detections also didn't say, in one line, whether they came from a container metadata flag or the idet content scan.What
Full file paths in media logs —
ProcessFile,SidecarFile, andProcessDriverreport lines now logFullName, including the per-track dumps (viaMediaPropsconstruction). The static verify log keeps logging the actual file it verifies (scope or temp), now at full path.Interlaced detection
FindInterlacedTracksis a pure predicate (no logging). It outs anFfMpegIdetInfo?that is non-null only when the idet scan detected interlacing (null for a metadata flag) — the object both signals the source and carries the evidence.DeInterlacelogs one warning reporting how it was detected, and for idet extracts the MultiFrame detail from the out object:Log detail / consistency
Tags detectedreports which tools see tags;Cover Art detectedreports the format.{FileName}everywhere ({File}×6 and a stray{fileName}renamed) — placeholder-name only, rendered text unchanged.Notes
Logging/consistency change with no new unit-testable logic, so no test change. Build clean (0 warnings), csharpier + dotnet format clean, existing suite (162 tests) passes.
🤖 Generated with Claude Code