Skip to content

packMP3 v2.0 (LTS)

Choose a tag to compare

@YadeWira YadeWira released this 12 Jul 14:41

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 .pm3 archive extension (format detection is by content, not
    extension, so old .pmp archives 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 -k1 keeps
    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 -th batch and -k intra-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.gzlibpackMP3.so + packMP3lib.a (static) + header
  • packMP3-2.0-win64-lib.zippackMP3.dll + import lib + .def (MSVC) + headers
  • packMP3-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