3 All notable changes to this project will be documented in this file.
5 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
8 ## [1.2.2] - 2023-08-13
12 * Fixed invalid regex in src/create_symbols_file.py
13 * Fixed passing null pointer to printf %s in tests
15 ## [1.2.1] - 2023-08-12
19 * RISC OS support to `sndfile-play`, thanks @ccawley2011
20 * Move semantics to `SndFileHandle` C++ class, thanks @haydaralaidrus
24 * Various typos, thanks @@uniontech-lilinjie
25 * Handling of absolute `CMAKE_INSTALL_LIBDIR`/`CMAKE_INSTALL_INCLUDEDIR`, thanks
27 * Add `localtime_s` support to `sndfile-metadata-set`, thanks @neheb (issue #907)
28 * Linking with CMake against `Ogg::ogg`, thanks @FtZPetruska
29 * CMake `mpg123` module handling bugs, thanks @FtZPetruska
30 * CMake dependencies handling, thanks @FtZPetruska
31 * Various `Ogg` & `Opus` format fixes, thanks @weiliang (issue #888)
32 * Redefining `ssize_t` when building with Autotools, thanks @ccawley2011
34 * Bug related to incorrect `realloc` use, thanks @Halmoni100
35 * Style errors, thanks to @arthurt
36 * AIFF format related bugs, thanks to @arthurt
37 * Reading of MP3 files without Xing or INFO headers, thanks @arthurt
38 * Coding style of `src/mpeg_decode.c`, thanks @arthurt
39 * Various documentation types, thanks @luzpaz
40 * Intrinsics inclusion for MSVC and ARM64/ARM64EC, thanks @frysee
41 * `sf_open_fd`() regression, thanks @brentr (PR #950)
42 * WAV format related bug, thanks @magnus-nomono (issue #930)
46 * Obsolete file `libsndfile.spec.in``, thanks @janstary
48 ## [1.2.0] - 2022-12-25
52 * Searching for LAME dependency with CMake build system (issue #821).
53 * CMake build from Autotools tarball (issue #816).
54 * Build on UWP platform (issue #824).
55 * Fix signed integer overflow (issue #785).
56 * Skipping large wav chunks on stdin (PR #819).
60 * Maximum samplerate limit, thanks @drmpeg, @justacec (issue #850).
62 In version 1.1.0, an artificial limit of 655350 Hz was created, but as it
63 turned out, this is not enough for some scenarios.
65 ## [1.1.0] - 2022-03-27
69 * MPEG Encode/Decode Support.
71 Uses libmpg123 for decode, liblame for encode. Encoding and decoding support
72 is independent of each other and is split into separate files. MPEG support
73 is generalized as subformats, `SF_FORMAT_MPEG_LAYER`(I,II,III) so that it
74 might be used by other containers (`MPEG1WAVEFORMAT` for example), but also
75 contains a major format `SF_FORMAT_MPEG` for 'mp3 files.'
81 * Lame/Xing Tag writing
82 * Bitrate selection command
86 * Layers I/II/III decoding
90 * New fuzzer for OSS-Fuzz, thanks @DavidKorczynski.
91 * This `CHANGELOG.md`. All notable changes to this project will be documented in
92 this file. The old `NEWS` file has been renamed to `NEWS.OLD` and is no longer
94 * Add support for decoding MPEG III Audio in WAV files.
95 * `SECURITY.md` file to give people instructions for reporting security
96 vulnerabilities, thanks @zidingz.
97 * Support for [Vcpkg manifest mode](https://vcpkg.readthedocs.io/en/latest/users/manifests/).
99 If you have problems with manifest mode, disable it with `VCPKG_MANIFEST_MODE`
101 * [Export CMake targets from the build tree (PR #802)](https://cmake.org/cmake/help/latest/guide/importing-exporting/index.html#exporting-targets-from-the-build-tree)
102 * CIFuzz fuzzer, thanks to @AdamKorcz (PR #796)
106 * `SFC_SET_DITHER_ON_READ` and `SFC_SET_DITHER_ON_WRITE` enums comments in
107 public header, thanks @SmiVan (issue #677).
108 * `ENABLE_SNDFILE_WINDOWS_PROTOTYPES` define is deprecated and not needed
111 Previously, in order for the [`sf_wchar_open`()](http://libsndfile.github.io/libsndfile/api.html#open)
112 function to become available on the Windows platform, it was required to
113 perform certain actions:
117 #define ENABLE_SNDFILE_WINDOWS_PROTOTYPES 1
118 #including <sndfile.h>
121 These steps are no longer required and the `sf_wchar_open`() function is
122 always available on the Windows platform.
123 * Use UTF-8 as internal path encoding on Windows platform.
125 This is an internal change to unify and simplify the handling of file paths.
127 On the Windows platform, the file path is always converted to UTF-8 and
128 converted to UTF-16 only for calls to WinAPI functions.
130 The behavior of the functions for opening files on other platforms does not
132 * Switch to .xz over .bz2 for release tarballs.
133 * Disable static builds using Autotools by default. If you want static
134 libraries, pass --enable-static to ./configure
138 * Typo in `docs/index.md`.
139 * Typo in `programs/sndfile-convert.c`, thanks @fjl.
140 * Memory leak in `caf_read_header`(), credit to OSS-Fuzz ([issue 30375](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=30375)).
141 * Stack overflow in `guess_file_type`(), thanks @bobsayshilol, credit to
142 OSS-Fuzz ([issue 29339](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=29339)).
143 * Abort in fuzzer, thanks @bobsayshilol, credit to OSS-Fuzz
144 ([issue 26257](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=26257)).
145 * Infinite loop in `svx_read_header`(), thanks @bobsayshilol, credit to OSS-Fuzz
146 ([issue 25442](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=25442)).
147 * GCC and Clang pedantic warnings, thanks @bobsayshilol.
148 * Normalisation issue when scaling floating point data to `int` in
149 `replace_read_f2i`(), thanks @bobsayshilol, (issue #702).
150 * Missing samples when doing a partial read of Ogg file from index till the end
151 of file, thanks @arthurt (issue #643).
152 * sndfile-salvage: Handle files > 4 GB on Windows OS
153 * Undefined shift in `dyn_get_32bit`(), credit to OSS-Fuzz
154 ([issue 27366](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=27366)).
155 * Integer overflow in `nms_adpcm_update`(), credit to OSS-Fuzz
156 ([issue 25522](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=25522)).
157 * Integer overflow in `psf_log_printf`(), credit to OSS-Fuzz
158 ([issue 28441](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28441)),
159 ([issue 25624](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=25624)).
160 * ABI version incompatibility between Autotools and CMake build on Apple
163 Now ABI must be compatible with Autotools builds. Note that this change
164 requires CMake >= 3.17 for building dylib on Apple platforms.
166 * Fix build with Autotools + MinGW toolchain on Windows platform.
168 See https://github.com/msys2/MINGW-packages/issues/5803 for details.
172 * Heap buffer overflow in `wavlike_ima_decode_block`(), thanks @bobsayshilol,
173 credit to OSS-Fuzz ([issue 25530](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=25530)).
174 * Heap buffer overflow in `msadpcm_decode_block`(), thanks @bobsayshilol,
175 credit to OSS-Fuzz ([issue 26803](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=26803)).
176 * Heap buffer overflow in `psf_binheader_readf`(), thanks @bobsayshilol,
177 credit to OSS-Fuzz ([issue 26026](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=26026)).
178 * Index out of bounds in `psf_nms_adpcm_decode_block`(), credit to OSS-Fuzz
179 ([issue 25561](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=25561)).
180 * Heap buffer overflow in `flac_buffer_copy`(), thanks @yuawn, @bobsayshilol.
181 * Heap buffer overflow in `copyPredictorTo24`(), thanks @bobsayshilol,
182 credit to OSS-Fuzz ([issue 27503](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=27503)).
183 * Uninitialized variable in `psf_binheader_readf`(), thanks @shao-hua-li,
184 credit to OSS-Fuzz ([issue 25364](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=25364)).
186 [Unreleased]: https://github.com/libsndfile/libsndfile/compare/1.2.2...HEAD
187 [1.2.2]: https://github.com/libsndfile/libsndfile/compare/1.2.1...1.2.2
188 [1.2.1]: https://github.com/libsndfile/libsndfile/compare/1.2.0...1.2.1
189 [1.2.0]: https://github.com/libsndfile/libsndfile/compare/1.1.0...1.2.0
190 [1.1.0]: https://github.com/libsndfile/libsndfile/compare/1.0.31...1.1.0