Merge tag 'upstream/1.2.2' into tizen_base
[platform/upstream/libsndfile.git] / CHANGELOG.md
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