Releases: libsndfile/libsndfile
1.2.2
1.2.1
1.2.1 - 2023-08-12
Added
- RISC OS support to
sndfile-play
, thanks @ccawley2011 - Move semantics to
SndFileHandle
C++ class, thanks @haydaralaidrus
Fixed
- Various typos, thanks @@uniontech-lilinjie
- Handling of absolute
CMAKE_INSTALL_LIBDIR
/CMAKE_INSTALL_INCLUDEDIR
, thanks
@Staudey (issue #908) - Add
localtime_s
support tosndfile-metadata-set
, thanks @neheb (issue #907) - Linking with CMake against
Ogg::ogg
, thanks @FtZPetruska - CMake
mpg123
module handling bugs, thanks @FtZPetruska - CMake dependencies handling, thanks @FtZPetruska
- Various
Ogg
&Opus
format fixes, thanks @weiliang (issue #888) - Redefining
ssize_t
when building with Autotools, thanks @ccawley2011
(issue #934) - Bug related to incorrect
realloc
use, thanks @Halmoni100 - Style errors, thanks to @arthurt
- AIFF format related bugs, thanks to @arthurt
- Reading of MP3 files without Xing or INFO headers, thanks @arthurt
- Coding style of
src/mpeg_decode.c
, thanks @arthurt - Various documentation types, thanks @luzpaz
- Intrinsics inclusion for MSVC and ARM64/ARM64EC, thanks @frysee
sf_open_fd
() regression, thanks @brentr (PR #950)- WAV format related bug, thanks @magnus-nomono (issue #930)
Removed
- Obsolete file `libsndfile.spec.in``, thanks @janstary
1.2.0
1.1.0
1.1.0 - 2022-03-27
Added
-
MPEG Encode/Decode Support.
Uses libmpg123 for decode, liblame for encode. Encoding and decoding support
is independent of each other and is split into separate files. MPEG support
is generalized as subformats,SF_FORMAT_MPEG_LAYER
(I,II,III) so that it
might be used by other containers (MPEG1WAVEFORMAT
for example), but also
contains a major formatSF_FORMAT_MPEG
for 'mp3 files.'Encoding Status:
- Layer III encoding
- ID3v1 writing
- ID3v2 writing
- Lame/Xing Tag writing
- Bitrate selection command
- VBR or CBR
Decoding Status:
- Layers I/II/III decoding
- ID3v1 reading
- ID3v2 reading
- Seeking
-
New fuzzer for OSS-Fuzz, thanks @DavidKorczynski.
-
This
CHANGELOG.md
. All notable changes to this project will be documented in
this file. The oldNEWS
file has been renamed toNEWS.OLD
and is no longer
updated. -
Add support for decoding MPEG III Audio in WAV files.
-
SECURITY.md
file to give people instructions for reporting security
vulnerabilities, thanks @zidingz. -
Support for Vcpkg manifest mode.
If you have problems with manifest mode, disable it with
VCPKG_MANIFEST_MODE
switch. -
CIFuzz fuzzer, thanks to @AdamKorcz (PR #796)
Changed
-
SFC_SET_DITHER_ON_READ
andSFC_SET_DITHER_ON_WRITE
enums comments in
public header, thanks @SmiVan (issue #677). -
ENABLE_SNDFILE_WINDOWS_PROTOTYPES
define is deprecated and not needed
anymore.Previously, in order for the
sf_wchar_open
()
function to become available on the Windows platform, it was required to
perform certain actions:#include <windows.h> #define ENABLE_SNDFILE_WINDOWS_PROTOTYPES 1 #including <sndfile.h>
These steps are no longer required and the
sf_wchar_open
() function is
always available on the Windows platform. -
Use UTF-8 as internal path encoding on Windows platform.
This is an internal change to unify and simplify the handling of file paths.
On the Windows platform, the file path is always converted to UTF-8 and
converted to UTF-16 only for calls to WinAPI functions.The behavior of the functions for opening files on other platforms does not
change. -
Switch to .xz over .bz2 for release tarballs.
-
Disable static builds using Autotools by default. If you want static
libraries, pass --enable-static to ./configure
Fixed
-
Typo in
docs/index.md
. -
Typo in
programs/sndfile-convert.c
, thanks @fjl. -
Memory leak in
caf_read_header
(), credit to OSS-Fuzz (issue 30375). -
Stack overflow in
guess_file_type
(), thanks @bobsayshilol, credit to
OSS-Fuzz (issue 29339). -
Abort in fuzzer, thanks @bobsayshilol, credit to OSS-Fuzz
(issue 26257). -
Infinite loop in
svx_read_header
(), thanks @bobsayshilol, credit to OSS-Fuzz
(issue 25442). -
GCC and Clang pedantic warnings, thanks @bobsayshilol.
-
Normalisation issue when scaling floating point data to
int
in
replace_read_f2i
(), thanks @bobsayshilol, (issue #702). -
Missing samples when doing a partial read of Ogg file from index till the end
of file, thanks @arthurt (issue #643). -
sndfile-salvage: Handle files > 4 GB on Windows OS
-
Undefined shift in
dyn_get_32bit
(), credit to OSS-Fuzz
(issue 27366). -
Integer overflow in
nms_adpcm_update
(), credit to OSS-Fuzz
(issue 25522). -
Integer overflow in
psf_log_printf
(), credit to OSS-Fuzz
(issue 28441),
(issue 25624). -
ABI version incompatibility between Autotools and CMake build on Apple
platforms.Now ABI must be compatible with Autotools builds. Note that this change
requires CMake >= 3.17 for building dylib on Apple platforms. -
Fix build with Autotools + MinGW toolchain on Windows platform.
See msys2/MINGW-packages#5803 for details.
Security
- Heap buffer overflow in
wavlike_ima_decode_block
(), thanks @bobsayshilol,
credit to OSS-Fuzz (issue 25530). - Heap buffer overflow in
msadpcm_decode_block
(), thanks @bobsayshilol,
credit to OSS-Fuzz (issue 26803). - Heap buffer overflow in
psf_binheader_readf
(), thanks @bobsayshilol,
credit to OSS-Fuzz (issue 26026). - Index out of bounds in
psf_nms_adpcm_decode_block
(), credit to OSS-Fuzz
(issue 25561). - Heap buffer overflow in
flac_buffer_copy
(), thanks @yuawn, @bobsayshilol. - Heap buffer overflow in
copyPredictorTo24
(), thanks @bobsayshilol,
credit to OSS-Fuzz (issue 27503). - Uninitialized variable in
psf_binheader_readf
(), thanks @shao-hua-li,
credit to OSS-Fuzz (issue 25364).
1.0.31
- The releaser of libsndfile starting from this version is the libsndfile team
member @SoapGentoo, see AUTHORS for details. - Implement fast SSE2 optimized psf_lrintf() and psf_lrintf() functions to
improve perfomance when libsndfile is built using Visual C++ (especially)
and other compilers on x86 and AMD64 platforms. See also description of
ENABLE_SSE2 CMake option in README.md. - Documentation:
- Move site to new URL: http://libsndfile.github.io/libsndfile/
- Convert documentation pages from HTML to Markdown
- Use GitHub's Jekyll static site generator to generate static HTML pages
for site - Fix api.md table error, thanks to @zodf0055980
- Other docuemntation fixes and updates
- Change CMake's project name from sndfile to libsndfile as it should be.
- Change behaviour of ENABLE_STATIC_RUNTIME option. In short:
- You can use ENABLE_STATIC_RUNTIME for CMake >= 3.15 without error.
- You can use your our method to set MSVC runtime library flags if none of
ENABLE_STATIC_RUNTIME and CMAKE_MSVC_RUNTIME_LIBRARY were set.
Advanced information: - If this option is defined (set to ON or OFF), set CMP0091 policy to OLD
(we handle MSVC runtime library flags using compiler flags), set
corresponding compiler flags for user. - NEW: If this option is not defined, set CMP0091 policy to OLD (we handle
MSVC runtime library flags using compiler flags), don't touch compiler
options, allow user to set it manually. - NEW: If new CMake option CMAKE_MSVC_RUNTIME_LIBRARY is set, change
CMP0091 policy to NEW (we handle MSVC runtime library flags using that
option), don't touch compiler flags. - NEW: If both ENABLE_STATIC_RUNTIME and CMAKE_MSVC_RUNTIME_LIBRARY are set,
terminate configuration with fatal error. - For MinGW toolchain this option is experimental. If you enabled it and
then disabled again, you need to clear CMake cache (delete
CMakeCache.txt).
- Make CMake clip test faster.
- Fix CMake bug with sndio library dependency, thanks to @drhenault.
- Fix memory leak in wav_read_smpl_chunk() function, credit to OSS-Fuzz.
- Fix aiff_read_header() memory leak(), credit to OSS-Fuzz.
- Fix leak in wav_read_header(), credit to OSS-Fuzz.
- Fix leak in wavlike_read_cart_chunk(), credit to OSS-Fuzz.
- Fix memory leak in wav_read_acid_chunk(), credit to OSS-Fuzz.
- Fix memory leak in aiff_read_basc_chunk(), credit to OSS-Fuzz.
- Fix memory leak in wavlike_read_peak_chunk(), credit to OSS-Fuzz.
- Fix memory leak in aiff_read_header(), credit to OSS-Fuzz.
- Fix use of uninitialized value in exif_subchunk_parse(), credit to OSS-Fuzz.
- Fix use of uninitialized value in endswap_int64_t_array(), credit to
OSS-Fuzz. - Fix up the fuzzer so that it can't under or overseek,
thanks to Max Dymond cmeister2@gmail.com. - Fix Autotools configure on macOS, thanks to @tmcguire and @nwh.
- Exclude repository-configuration from git-archive, thanks to @umlaeute.
- Use version-script when compiling with clang on Unix with Autotools, thanks
to @tstellar. - Improve handling of SMPL chunks in WAV files, thanks to @zodf0055980.
Note for Autotools users: Please note that the "Source code (zip)" or "Source code (tar.gz)" downloads require you to have the autotools toolchain (autoconf
, autogen
, automake
and libtool
) installed. If you don't want to install it (or don't know what this means), you should probably download the libsndfile-*.tar.bz2
asset instead.
1.0.30
NOTE: libsndfile-1.0.30.tar.bz2
and libsndfile-1.0.30.tar.bz2.asc
files were re-uploaded due to problems with incorrect line endings. Update the hashes if necessary. Sorry for the inconvenience.
- Fix critical CMake bug with broken ABI of shared libsndfile library.
- CMake build system considered to be stable.
- Move sndfile.h.in from src/ to include/ directory. To avoid problems, delete old generated sndfile.h from $(top_builddir)/src.
- Huge documentation update.
- Fix opus test failures on BE platforms, thanks to Arthur Taylor art@ified.ca.
- Fix bug when sf_open_fd() function sometimes leaves filehandle open, even if
close_desc
parameter is TRUE, thanks to @umläute. - Fix infinite loops on some pathological SD2 files, thanks to Jeremy Friesner jaf@meyersound.com.
- Switch to GitHub Actions for continuous integration.
- Add OSS-Fuzz tests to GitHub Actions workflow, thanks to Max Dymond cmeister2@gmail.com.
- Fix memory leak in wavlike_read_bext_chunk() function, credit to OSS-Fuzz.
- Fix undefined behavior in avr-read_header() function, credit to OSS-Fuzz.
- Add INSTALL_PKGCONFIG_MODULE CMake option to control sndfile.pc file installation, see README.md for details.
- Add INSTALL_MANPAGES CMake option, see README.md for details.
- Fix ENABLE_COMPATIBLE_LIBSNDFILE_NAME CMake option, now it works on MinGW platform too.
- Fix ENABLE_CPACK CMake option, see README.md for details.
- Fix ENABLE_STATIC_RUNTIME and CMAKE_MSVC_RUNTIME_LIBRARY behavior, see README.md for details.
- Fix CMake man pages installation bug when sndfile-deinterleave.1 and sndfile-metadata-set.1 were not installed.
- Fix sndfile-regtest paths handling on Windows platform, thanks to Gisle Vanem gvanem@yahoo.no.
The GPG signature is at Keybase.IO.
1.0.29
- Add support for Opus files.
- Autotool build system improvements.
- CMake build system improvements.
- Fixes for: CVE-2017-12562, CVE-2017-17456, CVE-2017-17457, CVE-2018-19661, CVE-2018-19662, CVE-2018-19758 and CVE-2019-3832.
- Add BWF v2 loudness parameters.
- Wave64: Permit and skip arbitrary chunks prior to the data chunk.
- Fix ASAN crash in wavlike_ima_seek().
- Fix IMA-ADPCM encoding for AIFF files.
- sndfile-convert: Handle gsm, vox and opus extensions the same way.
- Add SFC_SET_OGG_PAGE_LATENCY_MS command to get Ogg page latency for Ogg Opus files.
- Fix parsing of some SD2 files.
- Documentation updates.
- Minor bug fixes and improvements.
The GPG signature is at Keybase.IO.
1.0.28
- Fix buffer overruns in FLAC and ID3 handling code.
- Move to variable length header storage.
- Fix detection of Large File Support for 32 bit systems.
- Remove large stack allocations in ALAC handling code.
- Remove all use of Variable Length Arrays.
- Minor bug fixes and improvements.
1.0.27
- Fix an SF_INFO seekable flag regression introduced in 1.0.26.
- Fix potential infinite loops on malformed input files.
- Add string metadata read/write for CAF and RF64.
- Add handling of CUE chunks.
- Fix endian-ness issues in PAF files.
- Minor bug fixes and improvements.
1.0.26
- Fix for CVE-2014-9496, SD2 buffer read overflow.
- Fix for CVE-2014-9756, file_io.c divide by zero.
- Fix for CVE-2015-7805, AIFF heap write overflow.
- Add support for ALAC encoder in a CAF container.
- Add support for Cart chunks in WAV files.
- Minor bug fixes and improvements.