1# Changelog 2 3All notable changes to this project will be documented in this file. 4 5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), 6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 7 8## [1.2.0] - 2022-12-25 9 10### Fixed 11 12* Searching for LAME dependency with CMake build system (issue #821). 13* CMake build from Autotools tarball (issue #816). 14* Build on UWP platform (issue #824). 15* Fix signed integer overflow (issue #785). 16* Skipping large wav chunks on stdin (PR #819). 17 18### Removed 19 20* Maximum samplerate limit, thanks @drmpeg, @justacec (issue #850). 21 22 In version 1.1.0, an artificial limit of 655350 Hz was created, but as it 23 turned out, this is not enough for some scenarios. 24 25## [1.1.0] - 2022-03-27 26 27### Added 28 29* MPEG Encode/Decode Support. 30 31 Uses libmpg123 for decode, liblame for encode. Encoding and decoding support 32 is independent of each other and is split into separate files. MPEG support 33 is generalized as subformats, `SF_FORMAT_MPEG_LAYER`(I,II,III) so that it 34 might be used by other containers (`MPEG1WAVEFORMAT` for example), but also 35 contains a major format `SF_FORMAT_MPEG` for 'mp3 files.' 36 37 Encoding Status: 38 * Layer III encoding 39 * ID3v1 writing 40 * ID3v2 writing 41 * Lame/Xing Tag writing 42 * Bitrate selection command 43 * VBR or CBR 44 45 Decoding Status: 46 * Layers I/II/III decoding 47 * ID3v1 reading 48 * ID3v2 reading 49 * Seeking 50* New fuzzer for OSS-Fuzz, thanks @DavidKorczynski. 51* This `CHANGELOG.md`. All notable changes to this project will be documented in 52 this file. The old `NEWS` file has been renamed to `NEWS.OLD` and is no longer 53 updated. 54* Add support for decoding MPEG III Audio in WAV files. 55* `SECURITY.md` file to give people instructions for reporting security 56 vulnerabilities, thanks @zidingz. 57* Support for [Vcpkg manifest mode](https://vcpkg.readthedocs.io/en/latest/users/manifests/). 58 59 If you have problems with manifest mode, disable it with `VCPKG_MANIFEST_MODE` 60 switch. 61* [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) 62* CIFuzz fuzzer, thanks to @AdamKorcz (PR #796) 63 64### Changed 65 66* `SFC_SET_DITHER_ON_READ` and `SFC_SET_DITHER_ON_WRITE` enums comments in 67 public header, thanks @SmiVan (issue #677). 68* `ENABLE_SNDFILE_WINDOWS_PROTOTYPES` define is deprecated and not needed 69 anymore. 70 71 Previously, in order for the [`sf_wchar_open`()](http://libsndfile.github.io/libsndfile/api.html#open) 72 function to become available on the Windows platform, it was required to 73 perform certain actions: 74 75 ```c 76 #include <windows.h> 77 #define ENABLE_SNDFILE_WINDOWS_PROTOTYPES 1 78 #including <sndfile.h> 79 ``` 80 81 These steps are no longer required and the `sf_wchar_open`() function is 82 always available on the Windows platform. 83* Use UTF-8 as internal path encoding on Windows platform. 84 85 This is an internal change to unify and simplify the handling of file paths. 86 87 On the Windows platform, the file path is always converted to UTF-8 and 88 converted to UTF-16 only for calls to WinAPI functions. 89 90 The behavior of the functions for opening files on other platforms does not 91 change. 92* Switch to .xz over .bz2 for release tarballs. 93* Disable static builds using Autotools by default. If you want static 94 libraries, pass --enable-static to ./configure 95 96### Fixed 97 98* Typo in `docs/index.md`. 99* Typo in `programs/sndfile-convert.c`, thanks @fjl. 100* Memory leak in `caf_read_header`(), credit to OSS-Fuzz ([issue 30375](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=30375)). 101* Stack overflow in `guess_file_type`(), thanks @bobsayshilol, credit to 102 OSS-Fuzz ([issue 29339](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=29339)). 103* Abort in fuzzer, thanks @bobsayshilol, credit to OSS-Fuzz 104 ([issue 26257](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=26257)). 105* Infinite loop in `svx_read_header`(), thanks @bobsayshilol, credit to OSS-Fuzz 106 ([issue 25442](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=25442)). 107* GCC and Clang pedantic warnings, thanks @bobsayshilol. 108* Normalisation issue when scaling floating point data to `int` in 109 `replace_read_f2i`(), thanks @bobsayshilol, (issue #702). 110* Missing samples when doing a partial read of Ogg file from index till the end 111 of file, thanks @arthurt (issue #643). 112* sndfile-salvage: Handle files > 4 GB on Windows OS 113* Undefined shift in `dyn_get_32bit`(), credit to OSS-Fuzz 114 ([issue 27366](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=27366)). 115* Integer overflow in `nms_adpcm_update`(), credit to OSS-Fuzz 116 ([issue 25522](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=25522)). 117* Integer overflow in `psf_log_printf`(), credit to OSS-Fuzz 118 ([issue 28441](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28441)), 119 ([issue 25624](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=25624)). 120* ABI version incompatibility between Autotools and CMake build on Apple 121 platforms. 122 123 Now ABI must be compatible with Autotools builds. Note that this change 124 requires CMake >= 3.17 for building dylib on Apple platforms. 125 126* Fix build with Autotools + MinGW toolchain on Windows platform. 127 128 See https://github.com/msys2/MINGW-packages/issues/5803 for details. 129 130### Security 131 132* Heap buffer overflow in `wavlike_ima_decode_block`(), thanks @bobsayshilol, 133 credit to OSS-Fuzz ([issue 25530](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=25530)). 134* Heap buffer overflow in `msadpcm_decode_block`(), thanks @bobsayshilol, 135 credit to OSS-Fuzz ([issue 26803](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=26803)). 136* Heap buffer overflow in `psf_binheader_readf`(), thanks @bobsayshilol, 137 credit to OSS-Fuzz ([issue 26026](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=26026)). 138* Index out of bounds in `psf_nms_adpcm_decode_block`(), credit to OSS-Fuzz 139 ([issue 25561](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=25561)). 140* Heap buffer overflow in `flac_buffer_copy`(), thanks @yuawn, @bobsayshilol. 141* Heap buffer overflow in `copyPredictorTo24`(), thanks @bobsayshilol, 142 credit to OSS-Fuzz ([issue 27503](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=27503)). 143* Uninitialized variable in `psf_binheader_readf`(), thanks @shao-hua-li, 144 credit to OSS-Fuzz ([issue 25364](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=25364)). 145 146[Unreleased]: https://github.com/libsndfile/libsndfile/compare/1.1.0...HEAD 147[1.1.0]: https://github.com/libsndfile/libsndfile/compare/1.0.31...1.1.0 148