|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to this project will be documented in this file. |
| 4 | + |
| 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). |
| 7 | + |
| 8 | +## [1.2.2] - 2023-08-13 |
| 9 | + |
| 10 | +### Fixed |
| 11 | + |
| 12 | +* Fixed invalid regex in src/create_symbols_file.py |
| 13 | +* Fixed passing null pointer to printf %s in tests |
| 14 | + |
| 15 | +## [1.2.1] - 2023-08-12 |
| 16 | + |
| 17 | +### Added |
| 18 | + |
| 19 | +* RISC OS support to `sndfile-play`, thanks @ccawley2011 |
| 20 | +* Move semantics to `SndFileHandle` C++ class, thanks @haydaralaidrus |
| 21 | + |
| 22 | +### Fixed |
| 23 | + |
| 24 | +* Various typos, thanks @@uniontech-lilinjie |
| 25 | +* Handling of absolute `CMAKE_INSTALL_LIBDIR`/`CMAKE_INSTALL_INCLUDEDIR`, thanks |
| 26 | + @Staudey (issue #908) |
| 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 |
| 33 | + (issue #934) |
| 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) |
| 43 | + |
| 44 | +### Removed |
| 45 | + |
| 46 | +* Obsolete file `libsndfile.spec.in``, thanks @janstary |
| 47 | + |
| 48 | +## [1.2.0] - 2022-12-25 |
| 49 | + |
| 50 | +### Fixed |
| 51 | + |
| 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). |
| 57 | + |
| 58 | +### Removed |
| 59 | + |
| 60 | +* Maximum samplerate limit, thanks @drmpeg, @justacec (issue #850). |
| 61 | + |
| 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. |
| 64 | + |
| 65 | +## [1.1.0] - 2022-03-27 |
| 66 | + |
| 67 | +### Added |
| 68 | + |
| 69 | +* MPEG Encode/Decode Support. |
| 70 | + |
| 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.' |
| 76 | + |
| 77 | + Encoding Status: |
| 78 | + * Layer III encoding |
| 79 | + * ID3v1 writing |
| 80 | + * ID3v2 writing |
| 81 | + * Lame/Xing Tag writing |
| 82 | + * Bitrate selection command |
| 83 | + * VBR or CBR |
| 84 | + |
| 85 | + Decoding Status: |
| 86 | + * Layers I/II/III decoding |
| 87 | + * ID3v1 reading |
| 88 | + * ID3v2 reading |
| 89 | + * Seeking |
| 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 |
| 93 | + updated. |
| 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/). |
| 98 | + |
| 99 | + If you have problems with manifest mode, disable it with `VCPKG_MANIFEST_MODE` |
| 100 | + switch. |
| 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) |
| 103 | + |
| 104 | +### Changed |
| 105 | + |
| 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 |
| 109 | + anymore. |
| 110 | + |
| 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: |
| 114 | + |
| 115 | + ```c |
| 116 | + #include <windows.h> |
| 117 | + #define ENABLE_SNDFILE_WINDOWS_PROTOTYPES 1 |
| 118 | + #including <sndfile.h> |
| 119 | + ``` |
| 120 | +
|
| 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. |
| 124 | +
|
| 125 | + This is an internal change to unify and simplify the handling of file paths. |
| 126 | +
|
| 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. |
| 129 | +
|
| 130 | + The behavior of the functions for opening files on other platforms does not |
| 131 | + change. |
| 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 |
| 135 | +
|
| 136 | +### Fixed |
| 137 | +
|
| 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 |
| 161 | + platforms. |
| 162 | +
|
| 163 | + Now ABI must be compatible with Autotools builds. Note that this change |
| 164 | + requires CMake >= 3.17 for building dylib on Apple platforms. |
| 165 | +
|
| 166 | +* Fix build with Autotools + MinGW toolchain on Windows platform. |
| 167 | +
|
| 168 | + See https://github.com/msys2/MINGW-packages/issues/5803 for details. |
| 169 | +
|
| 170 | +### Security |
| 171 | +
|
| 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)). |
| 185 | +
|
| 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 |
0 commit comments