SuperLAME 1.0.2
SuperLAME 1.0.2 — bug-fix release
Three bugs found in a source audit are fixed — a crash, a silent resampling
quality fault, and a wrong sample-rate decision for mono files. If you
multithread-encode very short clips, use --resample across clock families
(44.1 kHz ↔ 48 kHz), use low CBR/ABR bitrates, or encode mono material, you
should update.
Fixed
-
Multithreaded encoding of very short inputs crashed. An input holding
fewer full MP3 frames than the chunk overlap (under ~0.1 s at 44.1 kHz, up
to ~0.18 s at 22.05/24 kHz) corrupted the heap and crashed with-t ≥ 2.
Such inputs now take a single-worker path; their output decodes to PCM
bit-identical with a single-thread encode. Single-thread was never affected. -
The parallel resampler misaligned its chunk seams at non-integer rate
ratios. Conversions like 44.1 kHz → 48 kHz (--resample 48) or the
low-bitrate auto-downsamples to 32/24/16/12/8 kHz left every chunk shifted
by a sub-sample offset — an error up to −13 dBFS below the signal, with a
discontinuity at every seam. Clean integer conversions (88.2 → 44.1,
96 → 48, 176.4 → 44.1, DXD) were always exact and are unchanged. After the
fix all ratios measure at the double-precision floor (−297 dBFS vs the
reference). -
Mono files got the stereo auto-downsample decision. At e.g. CBR 96 a
mono file was needlessly cut to 32 kHz; LAME keeps mono at 44.1 kHz at that
bitrate (mono has twice the per-channel bit budget). The rate decision now
sees the true channel count and matches stock LAME for both mono and stereo.
Also hardened in this release: encoder teardown no longer aborts on
out-of-memory before printing its error; --decode reports disk-full write
failures and refuses >4 GB WAV output instead of writing a wrapped header;
inputs beyond 2³¹ samples are refused with a clear message; small-frame
Xing/Info tag patching stays in bounds.
See CHANGELOG.md
for the full technical write-up.
Verified
- Regression suite extended 28 → 35 cases (tiny-input MT robustness,
resample seam integrity vs an independent reference, channel-aware rate
decision): 35/35 pass - Byte-identical output on all unaffected paths (normal-length MT encodes,
single-thread encodes, integer-family resamples) - ST vs MT equivalence and znver3-vs-SSE2 engine parity unchanged
Download
SuperLAME-1.0.2-win64.zip — the binary plus all license texts and source
pointer (GPL-complete). CPU engines (znver5 / znver4 / znver3 / SSE2) selected
at runtime; Intel CPUs supported. Built with clang/LLVM 21.
SHA-256 (SuperLAME-1.0.2.exe):
0c87ddb5bfc7d02a51a224404fb112ebcfab7802c10165f8305e8fc36654fb21
Provided as-is, with NO WARRANTY (GPL §11–12). GPL v2 or later.