mirror of
https://github.com/cookiengineer/audacity
synced 2025-09-16 08:10:25 +02:00
Upgrade to libsoxr 0.0.3.
This commit is contained in:
parent
52e607f51e
commit
cda544a119
@ -85,7 +85,7 @@ Upstream Version: 1.1.3
|
||||
libresample
|
||||
-----------
|
||||
Audio sample rate conversion library. Maintained by Audacity project.
|
||||
(Not currently used, in favor of libsoxr.)
|
||||
(Currently used only for Time Tracks, in favor of libsoxr elsewhere.)
|
||||
|
||||
libsamplerate
|
||||
-------------
|
||||
@ -118,11 +118,10 @@ libsoxr
|
||||
-------
|
||||
The SoX Resampler library performs one-dimensional sample-rate conversion,
|
||||
by Rob Sykes.
|
||||
Version in Audacity SVN: 0.0.2
|
||||
Version in Audacity SVN: 0.0.3
|
||||
Patches:
|
||||
* "libsoxr/configure" file: modified cmake params
|
||||
* modified .vcproj file in win\Projects\libsoxr
|
||||
* modified src/samplerate.h (hopefully only until this change is made in master libsoxr source)
|
||||
|
||||
|
||||
libvamp
|
||||
|
@ -12,7 +12,7 @@ set (DESCRIPTION_SUMMARY "One-dimensional sample-rate conversion library")
|
||||
|
||||
set (PROJECT_VERSION_MAJOR 0)
|
||||
set (PROJECT_VERSION_MINOR 0)
|
||||
set (PROJECT_VERSION_PATCH 2)
|
||||
set (PROJECT_VERSION_PATCH 3)
|
||||
|
||||
# For shared-object; if, since the last public release:
|
||||
# * library code changed at all: ++revision
|
||||
@ -103,6 +103,10 @@ if (WITH_AVFFT)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
if (EXISTS ${PROJECT_SOURCE_DIR}/src/vr32.c)
|
||||
set (HAVE_VR 1)
|
||||
endif ()
|
||||
|
||||
check_function_exists (lrint HAVE_LRINT)
|
||||
check_include_files (fenv.h HAVE_FENV_H)
|
||||
test_big_endian (WORDS_BIGENDIAN)
|
||||
@ -115,7 +119,7 @@ macro (make_exist)
|
||||
endforeach ()
|
||||
endmacro ()
|
||||
|
||||
make_exist (HAVE_LRINT HAVE_FENV_H WORDS_BIGENDIAN HAVE_SIMD)
|
||||
make_exist (HAVE_LRINT HAVE_FENV_H WORDS_BIGENDIAN HAVE_SIMD HAVE_VR)
|
||||
make_exist (HAVE_SINGLE_PRECISION HAVE_DOUBLE_PRECISION HAVE_AVFFT)
|
||||
|
||||
|
||||
@ -246,7 +250,7 @@ if (UNIX)
|
||||
set (CPACK_PACKAGE_VERSION_PATCH "${PROJECT_VERSION_PATCH}")
|
||||
|
||||
set (CPACK_SOURCE_GENERATOR "TBZ2")
|
||||
set (CPACK_SOURCE_IGNORE_FILES "/Debug/;/Release/;/cpack/;\\\\.swp$;\\\\.gitignore")
|
||||
set (CPACK_SOURCE_IGNORE_FILES "/Debug/;/Release/;/cpack/;\\\\.swp$;\\\\.gitignore;.*vr32\\\\.c")
|
||||
|
||||
include (CPack)
|
||||
|
||||
|
@ -38,6 +38,8 @@
|
||||
#endif
|
||||
|
||||
#undef min
|
||||
#undef max
|
||||
#define min(x,y) ((x)<(y)?(x):(y))
|
||||
#define max(x,y) ((x)>(y)?(x):(y))
|
||||
|
||||
#define AL(a) (sizeof(a)/sizeof((a)[0])) /* Array Length */
|
||||
|
@ -7,6 +7,7 @@
|
||||
#define SOXR_VERSION "@PROJECT_VERSION@"
|
||||
#define HAVE_SINGLE_PRECISION @HAVE_SINGLE_PRECISION@
|
||||
#define HAVE_DOUBLE_PRECISION @HAVE_DOUBLE_PRECISION@
|
||||
#define HAVE_VR @HAVE_VR@
|
||||
#define HAVE_AVFFT @HAVE_AVFFT@
|
||||
#define HAVE_SIMD @HAVE_SIMD@
|
||||
#define HAVE_FENV_H @HAVE_FENV_H@
|
||||
|
@ -24,6 +24,10 @@ if (WITH_SINGLE_PRECISION)
|
||||
set (SP_SOURCES rate32 ${RDFT32})
|
||||
endif ()
|
||||
|
||||
if (HAVE_VR)
|
||||
set (VR_SOURCES vr32)
|
||||
endif ()
|
||||
|
||||
if (HAVE_SIMD)
|
||||
set (SIMD_SOURCES rate32s ${RDFT32S} simd)
|
||||
foreach (source ${SIMD_SOURCES})
|
||||
@ -36,7 +40,7 @@ endif ()
|
||||
# Libsoxr:
|
||||
|
||||
add_library (${PROJECT_NAME} ${LIB_TYPE} ${PROJECT_NAME}.c data-io dbesi0 filter fft4g64
|
||||
${SP_SOURCES} ${DP_SOURCES} ${SIMD_SOURCES})
|
||||
${SP_SOURCES} ${VR_SOURCES} ${DP_SOURCES} ${SIMD_SOURCES})
|
||||
set_target_properties (${PROJECT_NAME} PROPERTIES
|
||||
VERSION "${SO_VERSION}"
|
||||
SOVERSION ${SO_VERSION_MAJOR}
|
||||
|
@ -1 +1 @@
|
||||
#include "soxr-lsr.h"
|
||||
#include "soxr-lsr.h"
|
||||
|
@ -23,7 +23,7 @@ typedef void sample_t; /* float or double */
|
||||
|
||||
typedef struct {
|
||||
sample_t * (* input)(void *, sample_t * samples, size_t n);
|
||||
void (* process)(void *);
|
||||
void (* process)(void *, size_t);
|
||||
sample_t const * (* output)(void *, sample_t * samples, size_t * n);
|
||||
void (* flush)(void *);
|
||||
void (* close)(void *);
|
||||
@ -205,7 +205,7 @@ static bool cpu_has_simd(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
extern control_block_t _soxr_rate32s_cb, _soxr_rate32_cb, _soxr_rate64_cb;
|
||||
extern control_block_t _soxr_rate32s_cb, _soxr_rate32_cb, _soxr_rate64_cb, _soxr_vr32_cb;
|
||||
|
||||
|
||||
|
||||
@ -243,10 +243,17 @@ soxr_t soxr_create(
|
||||
p->seed = (unsigned long)time(0) ^ (unsigned long)p;
|
||||
|
||||
#if HAVE_SINGLE_PRECISION
|
||||
if (!HAVE_DOUBLE_PRECISION || (p->q_spec.bits <= 20 && !(p->q_spec.flags & SOXR_DOUBLE_PRECISION))) {
|
||||
if (!HAVE_DOUBLE_PRECISION || (p->q_spec.bits <= 20 && !(p->q_spec.flags & SOXR_DOUBLE_PRECISION))
|
||||
#if HAVE_VR
|
||||
|| (p->q_spec.flags & SOXR_VR)
|
||||
#endif
|
||||
) {
|
||||
p->deinterleave = (deinterleave_t)_soxr_deinterleave_f;
|
||||
p->interleave = (interleave_t)_soxr_interleave_f;
|
||||
memcpy(&p->control_block,
|
||||
#if HAVE_VR
|
||||
(p->q_spec.flags & SOXR_VR)? &_soxr_vr32_cb :
|
||||
#endif
|
||||
#if HAVE_SIMD
|
||||
cpu_has_simd()? &_soxr_rate32s_cb :
|
||||
#endif
|
||||
@ -385,15 +392,6 @@ soxr_error_t soxr_set_oi_ratio(soxr_t p, double oi_ratio)
|
||||
|
||||
|
||||
|
||||
#if 0
|
||||
soxr_error_t soxr_set_pitch(soxr_t p, long pitch)
|
||||
{
|
||||
return soxr_set_oi_ratio(p, pow(2, -(double)pitch / OCTAVE_MULT));
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
void soxr_delete(soxr_t p)
|
||||
{
|
||||
if (p)
|
||||
@ -432,7 +430,8 @@ static void soxr_input_1ch(soxr_t p, unsigned i, soxr_cbuf_t src, size_t len)
|
||||
|
||||
|
||||
|
||||
static size_t soxr_input(soxr_t p, void const * in, size_t len)
|
||||
size_t soxr_input(soxr_t p, void const * in, size_t len);
|
||||
size_t soxr_input(soxr_t p, void const * in, size_t len)
|
||||
{
|
||||
bool separated = !!(p->io_spec.itype & SOXR_SPLIT);
|
||||
unsigned i;
|
||||
@ -461,7 +460,7 @@ static size_t soxr_output_1ch(soxr_t p, unsigned i, soxr_buf_t dest, size_t len,
|
||||
sample_t const * src;
|
||||
if (p->flushing)
|
||||
resampler_flush(p->resamplers[i]);
|
||||
resampler_process(p->resamplers[i]);
|
||||
resampler_process(p->resamplers[i], len);
|
||||
src = resampler_output(p->resamplers[i], NULL, &len);
|
||||
if (separated)
|
||||
p->clips += (p->interleave)(p->io_spec.otype, &dest, &src,
|
||||
|
@ -226,6 +226,7 @@ struct soxr_quality_spec { /* Typically */
|
||||
#define SOXR_MAINTAIN_3DB_PT 4u /* Reserved for internal use. */
|
||||
#define SOXR_HI_PREC_CLOCK 8u /* Increase `irrational' ratio accuracy. */
|
||||
#define SOXR_DOUBLE_PRECISION 16u /* Use double prec. even @ bitdepths <= 20.*/
|
||||
#define SOXR_VR 32u /* Reserved for future use. */
|
||||
|
||||
|
||||
|
||||
@ -298,7 +299,6 @@ SOXR soxr_io_spec_t soxr_io_spec(
|
||||
SOXR soxr_error_t soxr_set_error(soxr_t, soxr_error_t);
|
||||
SOXR soxr_error_t soxr_set_num_channels(soxr_t, unsigned);
|
||||
SOXR soxr_error_t soxr_set_oi_ratio(soxr_t, double);
|
||||
SOXR soxr_error_t soxr_set_pitch(soxr_t, long);
|
||||
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user