You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Cue WAVE tracks with an over-declared header now convert (#68232–#68237)
A WAV whose header claims more audio than the file contains no longer fails the conversion. Both encoders trust the data chunk's size field, so a file that is short of its declared length — the widely distributed Policenauts Saturn English patch ships exactly this shape, one CD frame (2,352 bytes) over-declared on all three discs — made chdman abort with Error reading input file (...wav) and the built-in CHDSharp fallback report Unexpected end of file (...wav). The app now detects the over-declaration before encoding and clamps the data and RIFF sizes to the bytes actually present, so the conversion reads the audio that exists. The repair happens on a private copy; the user's files are never modified.
Only the damaged WAV is copied. The repaired work set is staged on the cue's own volume and references every other file (including multi-hundred-MB disc images) in place by relative path. When a same-volume location is unavailable it falls back to the full copy-based work directory, which repairs the WAVs there.
Both encoders produce the same result for a repaired set: a byte-identical CHD from chdman and the built-in CHDSharp encoder (verified against the real Policenauts disc 1 files).
Housekeeping
PbpFileIntegrationTests now early-returns when its local samples are absent, matching every other integration group (§11.5); without samples the tests report as passed instead of failing on Assert.NotEmpty().
MDSSharp published as 1.2.1 with repository metadata pointing at the renamed CHD Studio repository; no functional changes.
Test suite grew to 1133 tests (1104 unit + 29 integration) across 58 test classes, including WavHeaderSanitizer unit coverage, the CueWorkDirectory repair paths and a real-chdman end-to-end regression test for the repaired cue set.