1.50 (Apr 16, 2026) [ Fabian Greffrath ] * Build quantize_sse library with hidden symbols * Don't call `exit()` from the library * Define some more `default_options` in Meson build * Fix some warnings in `frontend/maingui.c` * Default to `buildtype=release` in Meson build * Initialize `data` variable in `huffcode()` * Remove the faulty `HAVE_STRCASECMP` check and other pointless header checks * CI: Let Meson build set `CFLAGS` [ Nils Schimmelmann ] * Disallow PNS in MPEG-2 mode to match spec * frontend: Change default to MPEG-4 as MPEG-2 is obsolete * Add `max-channels` option to change `MAX_CHANNELS` from 64 * Fix PNS to stay on in `JOINT_MS` for low-bitrate accuracy * Replace redundant `cpe`, `sce`, and `lfe` boolean flags in `ChannelInfo` with an `enum` * Reduce `MAX_CHANNELS` to 8 for ADTS compliance * tns: Prevent division-by-zero or instability on highly correlated signals * Implement MOS-optimized bandwidth calculation * Fine-tune rate controller to restore bitrate accuracy * Fix channel-specific group metadata in joint-stereo * Enable link-time optimization (LTO) in Meson build * stereo: Fix undefined behaviour in intensity stereo for degenerate bands * Fix scalefactor delta overflows to comply with AAC spec (ISO 14496-3) * quantize: Pre-clamp scalefactor deltas to fix encoder/decoder mismatch 1.40 (Mar 17, 2026) [ tatsuz ] * Fix compilation with Visual Studio [ enWILLYado ] * Fix SIMD calls [ David Fort ] * Add meson as build system [ KokonoeTooru ] * Meson: Install faac executable [ Fabian Greffrath ] * CI: fix artifact path * Remove autoconf/automake build system * Remove plugins stuff, unmaintained for decades * Remove MSVC projects, deprecated in favour of meson * Do not check for unused headers * Generalize OS check in CI rule * Remove redundant defines * Make `faacgui` usable again * Report library version on version mismatch * Maintain library SONAME version 0.0.0 * Build both static and shared library by default * Properly declare symbol visibility as hidden [ Nils Schimmelmann ] * Add options to disable DRM and opt for single floating-point precision * CI: add native MSVC build and fix Windows compatibility * Remove dead code * Optimize FFT reordering by combining real and imaginary passes * Optimize FFT performance * CI: update GitHub Actions and add Dependabot configuration * Refactor quantizer for portable C and extensible SIMD dispatch * Optimize memory allocation and unify MDCT implementation * Optimize MDCT by removing conditional branches and hoisting logic * Rrefactor the hot path for writing bits to the output stream * Remove Digital Radio Mondiale (DRM) support 1.31.1 (Mar 03, 2025) [ Fabian Greffrath ] * Reduce autoconf requirement back down to 2.69 * Reformat configure.ac for the ac2ver.exe hack to work * Upload Windows artifacts 1.31 (Feb 28, 2025) [ Tatsuya Suzuki ] * updated Visual Studio projects to VS 2019 * main.c : progress report keeps alignment when encoding a large file * project/msvc : cleanup, fixes and changes [ Christopher Degawa ] * frontend: fix out-of-root build [ Fabian Greffrath ] * add a pkg-config file * avoid division by zero * Remove #pragma pack from faacEncStruct (thanks Locutus of Borg) * Reduce memory (thanks xnvi) + Remove `BwpInfo bwpInfo` from `struct CoderInfo` + Remove `nextSampleBuff[]` and `next2SampleBuff[]` from `struct faacEncStruct` * tns: Initialize `rArray[]` variable * update autoconf.ac and friends * do not pass add-stdcall-alias option to clang * always build both the regular and the DRM library * fix cppcheck warnings * add some basic CI * fix compilation with clang on Windows * Append INSTALL to README [ Steve Fosdick ] * Add album artist and various sort order MP4 tags [ Aaron Boxer ] * set libfaac library name to "faac" rather than "libfaac" [ Frank ] * Error C2065 (add #define _USE_MATH_DEFINES) [ pine3ree ] * Allow genre-id up to 255 1.30 (Oct 16, 2019) [ Robert Kausch ] * Fix Joint Stereo coding [ Krzysztof Nikiel ] * Code cleanup and compilation fixes * Fix endianness conversion functions [ Takashi Yoshi ] * Fix compilation with GCC < 4.6 * Fix compilation on big endian systems [ Fabian Greffrath ] * Fix division by zero errors * Fix compilation with GCC <= 4.7.3 * Change pointer type for proper arithmetics * Fix logic error in compiler detection * Revert back to some more generic SSE2 code * Fix a memory leak * Fix some cppcheck warnings in the Cfaac code * Check index ranges before dereferencing book arrays (CVE-2018-19886) * Clean up stdint.h header inclusions * Consistently use stdint.h types [ Michael Fink ] * Update Visual Studio 2017 projects * Add stdint.h header inclusions * Port over ac2ver tool from faad2 to generate PACKAGE_VERSION when compiling with Visual Studio [ Eugène Filin ] * Memory allocations redefined 1.29.9.2 (Nov 14, 2017) * fixed max MP4 bitrate calculation 1.29.9 (Nov 2, 2017) * initial version of PNS coding * Intensity Stereo coding * more speed improvements * finer bandwidth/cutoff setting (doesn't work with PNS) * fixed more bugs * rewritten mid/side coding * fixed bug in blockswitch 1.29.8 (Oct 15, 2017) * changed default mode to ABR 64kbps/channel * implemented short windows grouping * new huffman coder * SSE quantizer * modified functioning of ABR mode (-b option) * improved autotools support * allowed even higher bitrates, including ADTS * framebuffer size bug fixed * removed broken object types: Main and LTP * some mp4 atoms fixed for better compalibility * stdin seek bug fixed 1.29.7 (Aug 22, 2017) * quantizer tweaked to better support high bitrates * allow higher quality for mp4 files (-q 5000 max) * removed mid frequency boost (it turned out useless) * cutoff frequency adjusted to fully utilize upper band * --help-long option removed, it was just an alias for -H * -b option bug fixed 1.29.6 (Aug 18, 2017) - quality related bug fixed 1.29.5 (Aug 17, 2017) - updated manpage - check if output file exists; --overwrite option added - help/usage options reorganized - block switching is now tuned to match quality/bitrate - give more quality to lower frequancies (less to highs) - quantizer updated again 1.29.4 (Aug 14, 2017) - rewritten quantizer: faster, diffrerent quality, different bitrates - ftyp atom: set brands like itunes does, shoud be more compatible with picky tools - new option(--tag) to add named tags (iTunes '----') - faster and better short/long window type switch - Don't build DRM(Digital Radio Mondiale) by default. Use ./configure --enable-drm to build DRM version. - fixed bugs * rounding in QuantizeReflectionCoeffs (tns.c) * use +60 value for scalefactor. * use clipped diff instead of original value (huffman.c) 1.29.3 (Jul 21, 2017) - MP4 tag options improved - fixed MP4 'meta' atom bug - new option to set verbosity (-v0 to silence output) 1.29.2 (Jul 17, 2017) - new mp4 output code 1.29 (Jul 4, 2017) - various patches applied and bugs fixed 1.28 (Feb 5, 2009) * Prevent out of range scalefactors * Updated to latest mpeg4ip mp4 file format library * Added -s option to make the encoder output optimized mp4 layout * Improved JPEG detection for album art * Lot's of compilation issues solved