Repository navigation
Parse every EZ CD Audio Converter log format - #25
Merged
Merged
Conversation
The parser was written against one 10.3.0 log and patched for 6.0.0. A static analysis of how 2.8, 6.0, 7.1, 8.2, 11.5 and 12.4 write their logs now covers every layout they produce, in both the Normal/Range and the Single File/Disc Image profiles. Tracks come from the Details blocks rather than the summary table, so cancelled and failed tracks are aborted, including the 12.4 track whose encoder fails to close and which logs no closing line at all. Both CRC label schemes are read: "CRC" and "CRC verify" up to 6.0, "CRC (test)" and "CRC (copy)" from 7.1. Per-sector errors are read in both forms, one line per flag up to 7.1 and one combined line from 8.2. Data errors are C2 hits and become damaged sectors, synchronization errors become jitter, and CRC errors, sectors whose copy and test reads differ, become inconsistencies. Counts include both passes, as EZ CD counts them, and positions are merged into spans of adjacent sectors. The TOC is built from sectors, which also covers the reduced image log that prints no MSF columns. Pre-emphasis was read from the end of the row, which on 12.4 is the HDCD column, and "De-emphasized" never matched. Settings with an equivalent are now mapped: AccurateCDDA to accurate stream, "Drive read cache" (2.8 to 7.1) inverted to defeat audio cache, the silence deletion lines, and 12.4's Loudness, Peak and Gain normalization, which used to leave normalization unknown. An album line without an artist keeps its title. No read mode re-reads a sector, they differ only in how errors are flagged, so all of them are burst. Tracks run from one index 01 to the next and nothing before the first is read, so detected pre-gaps mean appended except HTOA and undetected ones appended undetected. Versions without the setting are unknown rather than inapplicable, which drew an incorrect gap handling deduction. The 12.4 track CRC covers every sample, silence included, so null samples are used. The encoder is the output format's extension, as EAC and XLD report it, rather than the plugin's description. Checked against the 10.3.0 and 6.0.0 logs, a 12.4 mock, and synthetic 2.8, 7.1, 8.2, 11.5 and 12.4 logs built from the analysis, which parse the same with LF line ends and trailing spaces stripped. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
new_xld took abbreviations such as r_c, jg_c and m_s, and XLD's extract_errors kept the same names for its locals. new_eac and new_ezcd take the field names, so new_xld and its caller now do as well. Output is unchanged on all 608 XLD sample logs, ignoring array order. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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.
The EZ CD parser was written against one 10.3.0 log and patched for 6.0.0. It now follows a static analysis of how 2.8, 6.0, 7.1, 8.2, 11.5 and 12.4 write their rip logs, and reads every layout they produce in both the Normal/Range and Single File/Disc Image profiles.
What changes
CRC/CRC verifyup to 6.0,CRC (test)/CRC (copy)from 7.1).De-emphasizednever matched.flac), as EAC and XLD report it, instead of the plugin text (FLAC 1.4.2).new_xld's arguments and XLD'sextract_errorslocals fromr_c,jg_c,m_s… to the field names, matchingnew_eacandnew_ezcd.Verification
main, ignoring array order. Byte-level differences come from theHashSet-ordered encoder list, which varies between runs of the same binary.🤖 Generated with Claude Code