Update libsndfile to 1.0.31
Update diff from Brad
This commit is contained in:
parent
6c14539244
commit
8e2d423615
@ -1,13 +1,13 @@
|
||||
# $OpenBSD: Makefile,v 1.36 2021/02/23 19:39:09 sthen Exp $
|
||||
# $OpenBSD: Makefile,v 1.37 2021/04/24 06:17:13 rsadowski Exp $
|
||||
|
||||
COMMENT= library to handle various audio file formats
|
||||
|
||||
DISTNAME= libsndfile-1.0.30
|
||||
REVISION= 0
|
||||
VER= 1.0.31
|
||||
DISTNAME= libsndfile-${VER}
|
||||
CATEGORIES= audio
|
||||
GH_ACCOUNT= libsndfile
|
||||
GH_PROJECT= libsndfile
|
||||
GH_TAGNAME= v1.0.30
|
||||
GH_TAGNAME= ${VER}
|
||||
|
||||
HOMEPAGE= https://github.com/libsndfile/libsndfile/
|
||||
|
||||
|
@ -1,2 +1,2 @@
|
||||
SHA256 (libsndfile-1.0.30.tar.gz) = WUK5Y9HbPtirH/uFcIMiqpY333bZ/oTh3+Sal6kOj0c=
|
||||
SIZE (libsndfile-1.0.30.tar.gz) = 650659
|
||||
SHA256 (libsndfile-1.0.31.tar.gz) = jN7grLBrsKPBpspSRXVkPfix86VaCJO03Z+CnQgmN4U=
|
||||
SIZE (libsndfile-1.0.31.tar.gz) = 662584
|
||||
|
@ -1,16 +0,0 @@
|
||||
$OpenBSD: patch-CMakeLists_txt,v 1.1 2021/01/16 12:54:12 sthen Exp $
|
||||
|
||||
CMake: Fix INSTALL_MANPAGES option.
|
||||
|
||||
Index: CMakeLists.txt
|
||||
--- CMakeLists.txt.orig
|
||||
+++ CMakeLists.txt
|
||||
@@ -74,7 +74,7 @@ if (NOT ENABLE_CPU_CLIP)
|
||||
set (CPU_CLIPS_NEGATIVE FALSE)
|
||||
endif ()
|
||||
cmake_dependent_option (ENABLE_COMPATIBLE_LIBSNDFILE_NAME "Set DLL name to libsndfile-1.dll (canonical name), sndfile.dll otherwise" OFF "WIN32;BUILD_SHARED_LIBS" OFF)
|
||||
-cmake_dependent_option (INSTALL_MANPAGES "Install man pages for programs" ON "BUILD_PROGRAMS AND (UNIX OR MINGW OR CYGWIN)" OFF)
|
||||
+cmake_dependent_option (INSTALL_MANPAGES "Install man pages for programs" ON "BUILD_PROGRAMS" OFF)
|
||||
|
||||
set (HAVE_EXTERNAL_XIPH_LIBS ${ENABLE_EXTERNAL_LIBS})
|
||||
set (HAVE_SQLITE3 ${BUILD_REGTEST})
|
@ -1,63 +0,0 @@
|
||||
$OpenBSD: patch-src_aiff_c,v 1.2 2021/01/16 12:54:12 sthen Exp $
|
||||
|
||||
- Fix aiff_read_header() memory leak.
|
||||
- Fix memory leak in aiff_open.
|
||||
- Fix AIFF parsing bug.
|
||||
- Fix memory leak in aiff_read_basc_chunk.
|
||||
- Fix memory leak in aiff_read_header.
|
||||
|
||||
Index: src/aiff.c
|
||||
--- src/aiff.c.orig
|
||||
+++ src/aiff.c
|
||||
@@ -243,6 +243,8 @@ aiff_open (SF_PRIVATE *psf)
|
||||
if ((psf->container_data = calloc (1, sizeof (AIFF_PRIVATE))) == NULL)
|
||||
return SFE_MALLOC_FAILED ;
|
||||
|
||||
+ psf->container_close = aiff_close ;
|
||||
+
|
||||
if (psf->file.mode == SFM_READ || (psf->file.mode == SFM_RDWR && psf->filelength > 0))
|
||||
{ if ((error = aiff_read_header (psf, &comm_fmt)))
|
||||
return error ;
|
||||
@@ -283,7 +285,6 @@ aiff_open (SF_PRIVATE *psf)
|
||||
psf->set_chunk = aiff_set_chunk ;
|
||||
} ;
|
||||
|
||||
- psf->container_close = aiff_close ;
|
||||
psf->command = aiff_command ;
|
||||
|
||||
switch (SF_CODEC (psf->sf.format))
|
||||
@@ -498,6 +499,11 @@ aiff_read_header (SF_PRIVATE *psf, COMM_CHUNK *comm_fm
|
||||
return SFE_WAV_BAD_PEAK ;
|
||||
} ;
|
||||
|
||||
+ if (psf->peak_info)
|
||||
+ { psf_log_printf (psf, "*** Found existing peak info, using last one.\n") ;
|
||||
+ free (psf->peak_info) ;
|
||||
+ psf->peak_info = NULL ;
|
||||
+ } ;
|
||||
if ((psf->peak_info = peak_info_calloc (psf->sf.channels)) == NULL)
|
||||
return SFE_MALLOC_FAILED ;
|
||||
|
||||
@@ -800,6 +806,10 @@ aiff_read_header (SF_PRIVATE *psf, COMM_CHUNK *comm_fm
|
||||
break ;
|
||||
} ;
|
||||
|
||||
+ if (psf->cues)
|
||||
+ { free (psf->cues) ;
|
||||
+ psf->cues = NULL ;
|
||||
+ } ;
|
||||
if ((psf->cues = psf_cues_alloc (mark_count)) == NULL)
|
||||
return SFE_MALLOC_FAILED ;
|
||||
|
||||
@@ -1719,6 +1729,11 @@ aiff_read_basc_chunk (SF_PRIVATE * psf, int datasize)
|
||||
|
||||
psf_log_printf (psf, " Loop Type : 0x%x (%s)\n", bc.loopType, type_str) ;
|
||||
|
||||
+ if (psf->loop_info)
|
||||
+ { psf_log_printf (psf, " Found existing loop info, using last one.\n") ;
|
||||
+ free (psf->loop_info) ;
|
||||
+ psf->loop_info = NULL ;
|
||||
+ } ;
|
||||
if ((psf->loop_info = calloc (1, sizeof (SF_LOOP_INFO))) == NULL)
|
||||
return SFE_MALLOC_FAILED ;
|
||||
|
19
audio/libsndfile/patches/patch-src_caf_c
Normal file
19
audio/libsndfile/patches/patch-src_caf_c
Normal file
@ -0,0 +1,19 @@
|
||||
$OpenBSD: patch-src_caf_c,v 1.2 2021/04/24 06:17:13 rsadowski Exp $
|
||||
|
||||
Fix memory leak in caf_read_header().
|
||||
|
||||
Index: src/caf.c
|
||||
--- src/caf.c.orig
|
||||
+++ src/caf.c
|
||||
@@ -416,6 +416,11 @@ caf_read_header (SF_PRIVATE *psf)
|
||||
return SFE_CAF_BAD_PEAK ;
|
||||
} ;
|
||||
|
||||
+ if (psf->peak_info)
|
||||
+ { psf_log_printf (psf, "*** Found existing peak info, using last one.\n") ;
|
||||
+ free (psf->peak_info) ;
|
||||
+ psf->peak_info = NULL ;
|
||||
+ } ;
|
||||
if ((psf->peak_info = peak_info_calloc (psf->sf.channels)) == NULL)
|
||||
return SFE_MALLOC_FAILED ;
|
||||
|
@ -1,16 +0,0 @@
|
||||
$OpenBSD: patch-src_double64_c,v 1.1 2021/02/13 06:31:07 rsadowski Exp $
|
||||
|
||||
Fix use of uninitialized value in endswap_int64_t_array.
|
||||
|
||||
Index: src/double64.c
|
||||
--- src/double64.c.orig
|
||||
+++ src/double64.c
|
||||
@@ -631,7 +631,7 @@ host_read_d2f (SF_PRIVATE *psf, float *ptr, sf_count_t
|
||||
readcount = psf_fread (ubuf.dbuf, sizeof (double), bufferlen, psf) ;
|
||||
|
||||
if (psf->data_endswap == SF_TRUE)
|
||||
- endswap_double_array (ubuf.dbuf, bufferlen) ;
|
||||
+ endswap_double_array (ubuf.dbuf, readcount) ;
|
||||
|
||||
d2f_array (ubuf.dbuf, readcount, ptr + total) ;
|
||||
total += readcount ;
|
21
audio/libsndfile/patches/patch-src_ima_adpcm_c
Normal file
21
audio/libsndfile/patches/patch-src_ima_adpcm_c
Normal file
@ -0,0 +1,21 @@
|
||||
$OpenBSD: patch-src_ima_adpcm_c,v 1.1 2021/04/24 06:17:13 rsadowski Exp $
|
||||
|
||||
Make sure that there's enough space to store decoded nibbles in when reading IMA ADPCM data.
|
||||
|
||||
Index: src/ima_adpcm.c
|
||||
--- src/ima_adpcm.c.orig
|
||||
+++ src/ima_adpcm.c
|
||||
@@ -182,7 +182,12 @@ ima_reader_init (SF_PRIVATE *psf, int blockalign, int
|
||||
if (psf->file.mode != SFM_READ)
|
||||
return SFE_BAD_MODE_RW ;
|
||||
|
||||
- pimasize = sizeof (IMA_ADPCM_PRIVATE) + blockalign * psf->sf.channels + 3 * psf->sf.channels * samplesperblock ;
|
||||
+ /*
|
||||
+ ** Allocate enough space for 1 more than a multiple of 8 samples
|
||||
+ ** to avoid having to branch when pulling apart the nibbles.
|
||||
+ */
|
||||
+ count = ((samplesperblock - 2) | 7) + 2 ;
|
||||
+ pimasize = sizeof (IMA_ADPCM_PRIVATE) + psf->sf.channels * (blockalign + samplesperblock + sizeof(short) * count) ;
|
||||
|
||||
if (! (pima = calloc (1, pimasize)))
|
||||
return SFE_MALLOC_FAILED ;
|
24
audio/libsndfile/patches/patch-src_sndfile_c
Normal file
24
audio/libsndfile/patches/patch-src_sndfile_c
Normal file
@ -0,0 +1,24 @@
|
||||
$OpenBSD: patch-src_sndfile_c,v 1.2 2021/04/24 06:17:13 rsadowski Exp $
|
||||
|
||||
Jump back to the start of guess_file_type() rather than recursing into it.
|
||||
|
||||
Index: src/sndfile.c
|
||||
--- src/sndfile.c.orig
|
||||
+++ src/sndfile.c
|
||||
@@ -2680,6 +2680,7 @@ static int
|
||||
guess_file_type (SF_PRIVATE *psf)
|
||||
{ uint32_t buffer [3], format ;
|
||||
|
||||
+retry:
|
||||
if (psf_binheader_readf (psf, "b", &buffer, SIGNED_SIZEOF (buffer)) != SIGNED_SIZEOF (buffer))
|
||||
{ psf->error = SFE_BAD_FILE_READ ;
|
||||
return 0 ;
|
||||
@@ -2780,7 +2781,7 @@ guess_file_type (SF_PRIVATE *psf)
|
||||
|| buffer [0] == MAKE_MARKER ('I', 'D', '3', 4))
|
||||
{ psf_log_printf (psf, "Found 'ID3' marker.\n") ;
|
||||
if (id3_skip (psf))
|
||||
- return guess_file_type (psf) ;
|
||||
+ goto retry ;
|
||||
return 0 ;
|
||||
} ;
|
||||
|
17
audio/libsndfile/patches/patch-src_svx_c
Normal file
17
audio/libsndfile/patches/patch-src_svx_c
Normal file
@ -0,0 +1,17 @@
|
||||
$OpenBSD: patch-src_svx_c,v 1.1 2021/04/24 06:17:13 rsadowski Exp $
|
||||
|
||||
Jump forwards to the next 4 byte aligned offset rather than always jumping backwards by 3 bytes.
|
||||
|
||||
Index: src/svx.c
|
||||
--- src/svx.c.orig
|
||||
+++ src/svx.c
|
||||
@@ -307,7 +307,8 @@ svx_read_header (SF_PRIVATE *psf)
|
||||
if ((chunk_size = psf_ftell (psf)) & 0x03)
|
||||
{ psf_log_printf (psf, " Unknown chunk marker at position %d. Resynching.\n", chunk_size - 4) ;
|
||||
|
||||
- psf_binheader_readf (psf, "j", -3) ;
|
||||
+ chunk_size = chunk_size & 3 ;
|
||||
+ psf_binheader_readf (psf, "j", 4 - chunk_size) ;
|
||||
break ;
|
||||
} ;
|
||||
psf_log_printf (psf, "*** Unknown chunk marker (%X) at position %D. Exiting parser.\n", marker, psf_ftell (psf) - 8) ;
|
@ -1,74 +0,0 @@
|
||||
$OpenBSD: patch-src_wav_c,v 1.2 2021/02/13 06:31:07 rsadowski Exp $
|
||||
|
||||
- Fix memory leak in wav_read_smpl_chunk().
|
||||
- Fix leak in wav_read_header.
|
||||
- Fix memory leak in wav_read_acid_chunk.
|
||||
- Improve handling of SMPL chunks in WAV files.
|
||||
|
||||
Index: src/wav.c
|
||||
--- src/wav.c.orig
|
||||
+++ src/wav.c
|
||||
@@ -481,6 +481,11 @@ wav_read_header (SF_PRIVATE *psf, int *blockalign, int
|
||||
|
||||
psf_log_printf (psf, " Count : %d\n", cue_count) ;
|
||||
|
||||
+ if (psf->cues)
|
||||
+ { free (psf->cues) ;
|
||||
+ psf->cues = NULL ;
|
||||
+ } ;
|
||||
+
|
||||
if ((psf->cues = psf_cues_alloc (cue_count)) == NULL)
|
||||
return SFE_MALLOC_FAILED ;
|
||||
|
||||
@@ -1289,7 +1294,7 @@ wav_command (SF_PRIVATE *psf, int command, void * UNUS
|
||||
static int
|
||||
wav_read_smpl_chunk (SF_PRIVATE *psf, uint32_t chunklen)
|
||||
{ char buffer [512] ;
|
||||
- uint32_t thisread, bytesread = 0, dword, sampler_data, loop_count ;
|
||||
+ uint32_t thisread, bytesread = 0, dword, sampler_data, loop_count, actually_loop_count = 0 ;
|
||||
uint32_t note, pitch, start, end, type = -1, count ;
|
||||
int j, k ;
|
||||
|
||||
@@ -1335,6 +1340,11 @@ wav_read_smpl_chunk (SF_PRIVATE *psf, uint32_t chunkle
|
||||
*/
|
||||
bytesread += psf_binheader_readf (psf, "4", &sampler_data) ;
|
||||
|
||||
+ if (psf->instrument)
|
||||
+ { psf_log_printf (psf, " Found more than one SMPL chunk, using last one.\n") ;
|
||||
+ free (psf->instrument) ;
|
||||
+ psf->instrument = NULL ;
|
||||
+ } ;
|
||||
if ((psf->instrument = psf_instrument_alloc ()) == NULL)
|
||||
return SFE_MALLOC_FAILED ;
|
||||
|
||||
@@ -1381,8 +1391,17 @@ wav_read_smpl_chunk (SF_PRIVATE *psf, uint32_t chunkle
|
||||
break ;
|
||||
} ;
|
||||
} ;
|
||||
+ actually_loop_count ++ ;
|
||||
+ } ;
|
||||
|
||||
- loop_count -- ;
|
||||
+ if (actually_loop_count > ARRAY_LEN (psf->instrument->loops))
|
||||
+ {
|
||||
+ psf_log_printf (psf, "*** Warning, actual Loop Points count exceeds %u, changing Loop Count from %u to %u\n", ARRAY_LEN (psf->instrument->loops), loop_count, ARRAY_LEN (psf->instrument->loops)) ;
|
||||
+ psf->instrument->loop_count = ARRAY_LEN (psf->instrument->loops) ;
|
||||
+ }
|
||||
+ else if (loop_count != actually_loop_count)
|
||||
+ { psf_log_printf (psf, "*** Warning, actual Loop Points count != Loop Count, changing Loop Count from %u to %u\n", loop_count, actually_loop_count) ;
|
||||
+ psf->instrument->loop_count = actually_loop_count ;
|
||||
} ;
|
||||
|
||||
if (chunklen - bytesread == 0)
|
||||
@@ -1486,6 +1505,11 @@ wav_read_acid_chunk (SF_PRIVATE *psf, uint32_t chunkle
|
||||
|
||||
psf_binheader_readf (psf, "j", chunklen - bytesread) ;
|
||||
|
||||
+ if (psf->loop_info)
|
||||
+ { psf_log_printf (psf, " Found existing loop info, using last one.\n") ;
|
||||
+ free (psf->loop_info) ;
|
||||
+ psf->loop_info = NULL ;
|
||||
+ } ;
|
||||
if ((psf->loop_info = calloc (1, sizeof (SF_LOOP_INFO))) == NULL)
|
||||
return SFE_MALLOC_FAILED ;
|
||||
|
@ -1,43 +0,0 @@
|
||||
$OpenBSD: patch-src_wavlike_c,v 1.1 2021/01/16 12:54:12 sthen Exp $
|
||||
|
||||
- Fix leak in wavlike_read_cart_chunk.
|
||||
- Fix memory leak in wavlike_read_peak_chunk.
|
||||
- Fix use of uninitialized value in exif_subchunk_parse.
|
||||
|
||||
Index: src/wavlike.c
|
||||
--- src/wavlike.c.orig
|
||||
+++ src/wavlike.c
|
||||
@@ -838,6 +838,12 @@ wavlike_read_cart_chunk (SF_PRIVATE *psf, uint32_t chu
|
||||
|
||||
psf_log_printf (psf, "cart : %u\n", chunksize) ;
|
||||
|
||||
+ if (psf->cart_16k)
|
||||
+ { psf_log_printf (psf, " Found more than one cart chunk, using last one.\n") ;
|
||||
+ free (psf->cart_16k) ;
|
||||
+ psf->cart_16k = NULL ;
|
||||
+ } ;
|
||||
+
|
||||
if ((psf->cart_16k = cart_var_alloc ()) == NULL)
|
||||
{ psf->error = SFE_MALLOC_FAILED ;
|
||||
return psf->error ;
|
||||
@@ -1187,6 +1193,11 @@ wavlike_read_peak_chunk (SF_PRIVATE * psf, size_t chun
|
||||
return SFE_WAV_BAD_PEAK ;
|
||||
} ;
|
||||
|
||||
+ if (psf->peak_info)
|
||||
+ { psf_log_printf (psf, "*** Found existing peak info, using last one.\n") ;
|
||||
+ free (psf->peak_info) ;
|
||||
+ psf->peak_info = NULL ;
|
||||
+ } ;
|
||||
if ((psf->peak_info = peak_info_calloc (psf->sf.channels)) == NULL)
|
||||
return SFE_MALLOC_FAILED ;
|
||||
|
||||
@@ -1258,7 +1269,7 @@ exif_fill_and_sink (SF_PRIVATE *psf, char* buf, size_t
|
||||
*/
|
||||
static int
|
||||
exif_subchunk_parse (SF_PRIVATE *psf, uint32_t length)
|
||||
-{ uint32_t marker, dword, vmajor = -1, vminor = -1, bytesread = 0 ;
|
||||
+{ uint32_t marker, dword = 0, vmajor = -1, vminor = -1, bytesread = 0 ;
|
||||
char buf [4096] ;
|
||||
int thisread ;
|
||||
|
@ -1,4 +1,4 @@
|
||||
@comment $OpenBSD: PLIST,v 1.14 2021/01/16 12:53:12 sthen Exp $
|
||||
@comment $OpenBSD: PLIST,v 1.15 2021/04/24 06:17:13 rsadowski Exp $
|
||||
@bin bin/sndfile-cmp
|
||||
@bin bin/sndfile-concat
|
||||
@bin bin/sndfile-convert
|
||||
@ -31,19 +31,19 @@ lib/pkgconfig/sndfile.pc
|
||||
@man man/man1/sndfile-play.1
|
||||
@man man/man1/sndfile-salvage.1
|
||||
share/doc/libsndfile/
|
||||
share/doc/libsndfile/FAQ.html
|
||||
share/doc/libsndfile/api.html
|
||||
share/doc/libsndfile/bugs.html
|
||||
share/doc/libsndfile/command.html
|
||||
share/doc/libsndfile/embedded_files.html
|
||||
share/doc/libsndfile/formats.html
|
||||
share/doc/libsndfile/index.html
|
||||
share/doc/libsndfile/FAQ.md
|
||||
share/doc/libsndfile/api.md
|
||||
share/doc/libsndfile/bugs.md
|
||||
share/doc/libsndfile/command.md
|
||||
share/doc/libsndfile/embedded_files.md
|
||||
share/doc/libsndfile/formats.md
|
||||
share/doc/libsndfile/index.md
|
||||
share/doc/libsndfile/libsndfile.css
|
||||
share/doc/libsndfile/libsndfile.jpg
|
||||
share/doc/libsndfile/lists.html
|
||||
share/doc/libsndfile/new_file_type.HOWTO
|
||||
share/doc/libsndfile/octave.html
|
||||
share/doc/libsndfile/lists.md
|
||||
share/doc/libsndfile/new_file_type_howto.md
|
||||
share/doc/libsndfile/octave.md
|
||||
share/doc/libsndfile/print.css
|
||||
share/doc/libsndfile/sndfile_info.html
|
||||
share/doc/libsndfile/tutorial.html
|
||||
share/doc/libsndfile/win32.html
|
||||
share/doc/libsndfile/sndfile_info.md
|
||||
share/doc/libsndfile/tutorial.md
|
||||
share/doc/libsndfile/win32.md
|
||||
|
Loading…
Reference in New Issue
Block a user