Releases: YadeWira/packMP3
Release list
packMP3 v2.0 (LTS)
First LTS release. Full MP3 (MPEG audio Layer III) family support and a
faster, format-safe entropy coder.
Highlights
- Full MPEG audio family for Layer III: MPEG-1, MPEG-2 and MPEG-2.5,
all channel modes (mono/stereo/joint/dual), CBR and VBR — all lossless. - New
.pm3archive extension (format detection is by content, not
extension, so old.pmparchives from this build still work). -k<N>: intra-file parallel chunking — split a single file into N
independent streams for multi-core encode/decode. Default-k1keeps
the maximum compression ratio; higher N trades a little ratio for speed.- Retuned entropy models, link-time optimization, and an optional
profile-guided build (make pgo) — all format-safe (no change to
compression ratio), only faster. - Verified bit-exact across Linux x64, Windows 7 SP1 x86 and Windows 10
x64, including-thbatch and-kintra-file multithreading.
Library / DLL API
Embeddable C-linkage library (pmplib_* prefix, real extern "C"
symbols), same lossless .pm3 format as the CLI. Download the bundle for
your platform:
packMP3-2.0-linux-x64-lib.tar.gz—libpackMP3.so+packMP3lib.a(static) + headerpackMP3-2.0-win64-lib.zip—packMP3.dll+ import lib +.def(MSVC) + headerspackMP3-2.0-win32-lib.zip— same, 32-bit
All three verified with a real C consumer (lossless round-trip, clean
unmangled export names); both Windows DLLs additionally verified on live
VMs (Windows 10 x64 and Windows 7 SP1 x86 — no crash, correct output).
See the README
for the function list and a known gap (no thread/batch control in the
library yet).
Known limitations
- Layer I/II (.mp1/.mp2) support exists in the codebase but is disabled
for this release — those files are rejected cleanly (never damaged). - Free-format bitrate and mixed-block-type frames are rejected cleanly
rather than compressed (rare in practice).
Cross-project standard
This release follows a common CLI/README/release-naming standard agreed
with the sibling packJPG and packPNG projects: identical
subcommands (a/x/list) and switches (-od/-r/-fs/-dry/-ver/
-np/-o/-module/-th<n>/-p/-d/-v<n>) across all three tools.
Verify downloads
sha256sum -c SHA256SUMS.txt
packMP3 v2.0a (library build fix)
Patch release on top of v2.0 — fixes a real library-build bug, no changes
to the CLI binaries' behavior or the .pm3 format (same appversion 20,
fully compatible with v2.0 archives).
Fixes
- Library build was broken in v2.0.
packmp3.cppused
std::atomic/std::threadfor the-k/-thintra-file chunking
feature, but<atomic>/<thread>were only conditionally included
(CLI-only guard) —make lib/make so/make dll, or any manual
-DBUILD_LIBbuild, failed to compile entirely. Reported independently
by a downstream consumer (ytool) building from the v2.0 tag; reproduced
and confirmed before fixing. - Library headers were missing
extern "C".packmp3lib.h/
packmp3dll.hdeclaredpmplib_*without C linkage, so the "C-linkage
API" actually had C++ name mangling — a plain C consumer, a.deffile,
orGetProcAddress-by-name needed the compiler-mangled name. Fixed;
exported symbols are now clean (pmplib_convert_file2file, etc.). - Added a 32-bit Windows DLL target (
make dll-x86) — packMP3 only
shipped a 64-bit DLL before. - Cleaned up leftover "PMP" wording in CLI help/error text that should
have said.pm3(a few strings were missed in the v1.0→v2.0 rename).
Verified before publishing
- Reproduced the v2.0 library-build bug from scratch against the tagged
commit, then verifiedv2.0abuilds clean with the exact reported
recipe (g++ -O3 -std=c++17 -DBUILD_LIB -fPIC -shared ...). - Full corpus lossless round-trip (11 files ×
-k1/2/4, 33/33
bit-exact) with the actual release binary before upload. - Static lib, shared lib, and both Windows DLLs (32/64-bit) built and
exercised with a real C++ consumer — lossless round-trip confirmed;
both DLLs additionally verified on live Windows 7 SP1 x86 / Windows 10
x64 VMs.
Downloads
Same layout as v2.0: packMP3_linux_x64, packMP3_win_x64.exe,
packMP3_win_x86.exe (CLI), plus packMP3-2.0a-linux-x64-lib.tar.gz /
packMP3-2.0a-win64-lib.zip / packMP3-2.0a-win32-lib.zip (library
bundles: lib + headers + .def + README per platform).
sha256sum -c SHA256SUMS.txt
See v2.0 for the
full feature changelog (MPEG-1/2/2.5 support, .pm3 format, -k
chunking, etc.) — this release only fixes the library build.