FLAC 1.5.0 released 2025-02-11
This release finally makes the encoder multithreaded! Furthermore, the decoder can now handle chained Ogg FLAC files. As always, a lot of things have been fixed and improved.
Package checksums (SHA-256)
f2c1c76592a82ffff8413ba3c4a1299b6c7ab06c734dee03fd88630485c2b920
flac-1.5.0.tar.xz53f1500f0d6e7c61379d7fee50d4a9f7f504c650009506d9ba015530d76c0dde
flac-1.5.0-win.zip
Changes
As there have been additions to the libFLAC interfaces, the libFLAC version number is incremented to 14. The libFLAC++ version number is incremented to 11.
- General
- Multithreaded encoding is now possible in libFLAC and through the flac command line tool
- The GFDL license file is updated to version 1.3
- The markdown tool documentation is now also converted to HTML, for bundling with systems that do not read manpages (e.g. Windows)
- Decoding of chained Ogg FLAC files is now possible (philippe44, Martijn van Beurden)
- Various fixes (Sam James, Miroslav Lichvar, Cristian Rodríguez, manxorist, kgroeneveld, Lee Carré, Jevin Sweval, braheezy, Wolfgang Stöggl)
- Is is now possible in libFLAC, libFLAC++ and metaflac to write to a new file when changing metadata, instead of needing to overwrite an existing file
- flac
- Testing mode (flac -t) now parses all metadata blocks and warns the user when ID3v1 metadata is detected
- A warning is displayed when frame numbers do not increase correctly throughout a file
- The explain option (-H or --explain) is now removed, use the manpage or html tool documentation instead
- Built-in help and tool documentation are improved (H2Swine)
- When re-encoding a FLAC file from an existing FLAC file, a check is added that the MD5 sums of both files are the same
- libFLAC and libFLAC++
- The library interfaces have been extended. See the porting guide (part of the API documentation)
- An error is sent when a frame is missing
- The algorithm of the 'loose mid side' option has changed. Instead of checking every few frames which option is best and keeping that for the next few frames, a fast heuristic is now used. This was necessary to enable multithreading
- Most level 0 metadata interface functions now also work with Ogg FLAC files
- When encoding Ogg FLAC files, the callback now returns a number of samples instead of always 0 (Jesper Larsson, ziplantil)
- When changing metadata, libFLAC now detects when an input file is a symlink, and will refuse to write data to it when an in-place rewrite of the metadata cannot happen
- When encoding using seektable templates, unused seekpoints (with a sample number higher than the total number of samples) are converted to placeholders
- Build system
- Fix building on Android with API version < 24 (Steve Lhomme)
- The microbench utility has been removed
- Enable building with emscripten (werner mendizabal)
- Minimum CMake version required (when building with CMake) is now formally 3.12
- Testing/validation
- Improve fuzzing of allocation failures
- Various other fuzzing improvements
- Documentation
- The FLAC format is now specified in RFC 9639
- The foreign metadata storage format used by the flac command line tool is now properly documented