Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package soundtouch for openSUSE:Factory checked in at 2021-12-08 22:08:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/soundtouch (Old) and /work/SRC/openSUSE:Factory/.soundtouch.new.31177 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "soundtouch" Wed Dec 8 22:08:29 2021 rev:33 rq:935917 version:2.3.1 Changes: -------- --- /work/SRC/openSUSE:Factory/soundtouch/soundtouch.changes 2021-01-30 13:55:49.793968807 +0100 +++ /work/SRC/openSUSE:Factory/.soundtouch.new.31177/soundtouch.changes 2021-12-08 22:08:41.906855335 +0100 @@ -1,0 +2,22 @@ +Sun Dec 5 19:18:19 UTC 2021 - Dirk M??ller <[email protected]> + +- update to 2.3.1: + * Adjusted cmake build settings and header files that cmake installs + * Disable setting "SOUNDTOUCH_ALLOW_NONEXACT_SIMD_OPTIMIZATION" by default. The + original purpose of this setting was to avoid performance penalty due to + unaligned SIMD memory accesses in old CPUs, but that is not any more issue in + concurrent CPU SIMD implementations and having this setting enabled can cause + slight compromise in result quality. + * soundtouch.clear() to really clear whole processing pipeline state. Earlier + individual variables were left uncleared, which caused slightly different + result if the same audio stream were processed again after calling clear(). + * TDstretch to align initial offset position to be in middle of correlation + search window. This ensures that with zero tempo change the output will be + same as input. + * Fix a bug in TDstrectch with too small initial skipFract value that + occurred with certain processing parameter settings: Replace assert with + assignment that corrects the situation. + * Remove OpenMP "_init_threading" workaround from Android build as it's not + needed with concurrent Android SDKs any more. + +------------------------------------------------------------------- Old: ---- soundtouch-2.2.tar.gz New: ---- 2.3.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ soundtouch.spec ++++++ --- /var/tmp/diff_new_pack.NjhhAv/_old 2021-12-08 22:08:42.426855579 +0100 +++ /var/tmp/diff_new_pack.NjhhAv/_new 2021-12-08 22:08:42.426855579 +0100 @@ -18,13 +18,13 @@ %define sover 1 Name: soundtouch -Version: 2.2 +Version: 2.3.1 Release: 0 Summary: Audio Processing Library License: LGPL-2.1-or-later Group: Productivity/Multimedia/Sound/Editors and Convertors URL: https://www.surina.net/soundtouch -Source: https://gitlab.com/soundtouch/soundtouch/-/archive/%{version}/%{name}-%{version}.tar.gz +Source: https://codeberg.org/soundtouch/soundtouch/archive/%{version}.tar.gz Source1: https://salsa.debian.org/multimedia-team/soundtouch/raw/master/debian/soundstretch.1 Source99: baselibs.conf BuildRequires: autoconf @@ -70,7 +70,7 @@ SoundTouch. %prep -%setup -q +%setup -q -n %{name} dos2unix README.html %build ++++++ soundtouch-2.2.tar.gz -> 2.3.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soundtouch-2.2/.gitignore new/soundtouch/.gitignore --- old/soundtouch-2.2/.gitignore 2020-10-15 17:23:34.000000000 +0200 +++ new/soundtouch/.gitignore 2021-09-07 17:26:53.000000000 +0200 @@ -47,3 +47,8 @@ source/android-lib/build source/android-lib/.externalNativeBuild +# CMake build directory +build* +CMakeFiles +CMakeCache.txt +*.cmake diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soundtouch-2.2/CMakeLists.txt new/soundtouch/CMakeLists.txt --- old/soundtouch-2.2/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/soundtouch/CMakeLists.txt 2021-09-07 17:26:53.000000000 +0200 @@ -0,0 +1,167 @@ +cmake_minimum_required(VERSION 3.1) +project(SoundTouch VERSION 2.3.1 LANGUAGES CXX) + +include(GNUInstallDirs) + +if(MSVC) + set(COMPILE_DEFINITIONS /O2 /fp:fast) + set(COMPILE_OPTIONS ) +else() + set(COMPILE_OPTIONS -Ofast) +endif() + +##################### +# SoundTouch library + +add_library(SoundTouch + source/SoundTouch/AAFilter.cpp + source/SoundTouch/BPMDetect.cpp + source/SoundTouch/cpu_detect_x86.cpp + source/SoundTouch/FIFOSampleBuffer.cpp + source/SoundTouch/FIRFilter.cpp + source/SoundTouch/InterpolateCubic.cpp + source/SoundTouch/InterpolateLinear.cpp + source/SoundTouch/InterpolateShannon.cpp + source/SoundTouch/mmx_optimized.cpp + source/SoundTouch/PeakFinder.cpp + source/SoundTouch/RateTransposer.cpp + source/SoundTouch/SoundTouch.cpp + source/SoundTouch/sse_optimized.cpp + source/SoundTouch/TDStretch.cpp +) +target_include_directories(SoundTouch PUBLIC + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> +) + +target_compile_definitions(SoundTouch PRIVATE ${COMPILE_DEFINITIONS}) +target_compile_options(SoundTouch PRIVATE ${COMPILE_OPTIONS}) + +if(BUILD_SHARED_LIBS) + set_target_properties(SoundTouch PROPERTIES + VERSION ${CMAKE_PROJECT_VERSION} + ) + if(WIN32) + set_target_properties(SoundTouch PROPERTIES + WINDOWS_EXPORT_ALL_SYMBOLS TRUE + ) + else() + set_target_properties(SoundTouch PROPERTIES + SOVERSION ${PROJECT_VERSION_MAJOR} + ) + endif() +endif() + +option(INTEGER_SAMPLES "Use integers instead of floats for samples" OFF) +if(INTEGER_SAMPLES) + target_compile_definitions(SoundTouch PRIVATE SOUNDTOUCH_INTEGER_SAMPLES) +else() + target_compile_definitions(SoundTouch PRIVATE SOUNDTOUCH_FLOAT_SAMPLES) +endif() + +if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv7.*|armv8.*)$") + set(NEON_CPU ON) +else() + set(NEON_CPU OFF) +endif() + +option(NEON "Use ARM Neon SIMD instructions if in ARM CPU" ON) +if(${NEON} AND ${NEON_CPU}) + target_compile_definitions(SoundTouch PRIVATE SOUNDTOUCH_USE_NEON) + target_compile_options(SoundTouch PRIVATE -mfpu=neon) +endif() + +install( + FILES + include/BPMDetect.h + include/FIFOSampleBuffer.h + include/FIFOSamplePipe.h + include/STTypes.h + include/SoundTouch.h + include/soundtouch_config.h + DESTINATION + "${CMAKE_INSTALL_INCLUDEDIR}/soundtouch" +) + +install(TARGETS SoundTouch + EXPORT SoundTouchTargets + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" +) + +####################### +# soundstretch utility + +option(SOUNDSTRETCH "Build soundstretch command line utility." ON) +if(SOUNDSTRETCH) + add_executable(soundstretch + source/SoundStretch/main.cpp + source/SoundStretch/RunParameters.cpp + source/SoundStretch/WavFile.cpp + ) + target_include_directories(soundstretch PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>) + target_compile_definitions(soundstretch PRIVATE ${COMPILE_DEFINITIONS}) + target_compile_options(soundstretch PRIVATE ${COMPILE_OPTIONS}) + target_link_libraries(soundstretch PRIVATE SoundTouch) + + install(TARGETS soundstretch + DESTINATION bin + ) +endif() + +######################## +# SoundTouchDll library + +option(SOUNDTOUCH_DLL "Build SoundTouchDLL C wrapper library" OFF) +if(SOUNDTOUCH_DLL) + add_library(SoundTouchDLL SHARED + source/SoundTouchDLL/SoundTouchDLL.cpp + source/SoundTouchDLL/SoundTouchDLL.rc + ) + set_target_properties(SoundTouch PROPERTIES POSITION_INDEPENDENT_CODE TRUE) + target_compile_options(SoundTouchDLL PRIVATE ${COMPILE_OPTIONS}) + set_target_properties(SoundTouchDLL PROPERTIES CXX_VISIBILITY_PRESET hidden) + target_compile_definitions(SoundTouchDLL PRIVATE DLL_EXPORTS) + target_include_directories(SoundTouchDLL PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>) + target_link_libraries(SoundTouchDLL PRIVATE SoundTouch) + install(FILES source/SoundTouchDLL/SoundTouchDLL.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/soundtouch") + install(TARGETS SoundTouchDLL EXPORT SoundTouchTargets) +endif() + +######################## + +# pkgconfig +set(prefix "${CMAKE_INSTALL_PREFIX}") +set(execprefix "\${prefix}") +set(libdir "\${prefix}/${CMAKE_INSTALL_LIBDIR}") +set(includedir "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}") +set(VERSION "${CMAKE_PROJECT_VERSION}") +configure_file(soundtouch.pc.in "${CMAKE_CURRENT_BINARY_DIR}/soundtouch.pc" @ONLY) +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/soundtouch.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") + +# CMake config +include(CMakePackageConfigHelpers) +set(SOUNDTOUCH_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/SoundTouch") +install( + EXPORT SoundTouchTargets + FILE SoundTouchTargets.cmake + NAMESPACE SoundTouch:: + DESTINATION "${SOUNDTOUCH_INSTALL_CMAKEDIR}" +) +configure_package_config_file(SoundTouchConfig.cmake.in + "${CMAKE_CURRENT_BINARY_DIR}/SoundTouchConfig.cmake" + INSTALL_DESTINATION "${SOUNDTOUCH_INSTALL_CMAKEDIR}" +) +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/SoundTouchConfigVersion.cmake" + VERSION "${CMAKE_PROJECT_VERSION}" + COMPATIBILITY SameMajorVersion +) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/SoundTouchConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/SoundTouchConfigVersion.cmake" + DESTINATION "${SOUNDTOUCH_INSTALL_CMAKEDIR}" +) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soundtouch-2.2/COPYING.TXT new/soundtouch/COPYING.TXT --- old/soundtouch-2.2/COPYING.TXT 2020-10-15 17:23:34.000000000 +0200 +++ new/soundtouch/COPYING.TXT 2021-09-07 17:26:53.000000000 +0200 @@ -2,7 +2,7 @@ Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -117,7 +117,7 @@ 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or -other authoried party saying it may be distributed under the terms of +other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soundtouch-2.2/README.html new/soundtouch/README.html --- old/soundtouch-2.2/README.html 2020-10-15 17:23:34.000000000 +0200 +++ new/soundtouch/README.html 2021-09-07 17:26:53.000000000 +0200 @@ -15,8 +15,8 @@ <body class="normal"> <hr> - <h1>SoundTouch audio processing library v2.2</h1> - <p class="normal">SoundTouch library Copyright © Olli Parviainen 2001-2020</p> + <h1>SoundTouch audio processing library v2.3.1</h1> + <p class="normal">SoundTouch library Copyright © Olli Parviainen 2001-2021</p> <hr> <h2>1. Introduction </h2> <p>SoundTouch is an open-source audio processing library that allows @@ -39,7 +39,7 @@ <hr> <h2>2. Compiling SoundTouch</h2> <p>Before compiling, notice that you can choose the sample data format if it's - desirable to use floating point sample data instead of 16bit integers. See + desirable to use 16bit integer sample data instead of floating point samples. See section "sample data format" for more information.</p> <p>Also notice that SoundTouch can use OpenMP instructions for parallel computation to accelerate the runtime processing speed in multi-core systems, @@ -72,15 +72,17 @@ <li>x64 64bit: C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\amd64\Microsoft.VC90.OPENMP\vcomp90.dll</li> </ul> - <p>In Visual Studio 2008, a SP1 version may be required for these libraries. In - other VC++ versions the required library will be expectedly found in similar + <p>In other VC++ versions the required library will be expectedly found in similar "redist" location.</p> <p>Notice that as minor demonstration of a "dll hell" phenomenon both the 32-bit and 64-bit version of vcomp90.dll have the same filename but different contents, - thus choose the proper version to allow the program start.</p> + thus choose the proper version to allow the program to start.</p> <h3>2.2. Building in Gnu platforms</h3> <p>The SoundTouch library compiles in practically any platform - supporting GNU compiler (GCC) tools. SoundTouch requires GCC version 4.3 or later.</p> + supporting GNU compiler (GCC) tools. + <h4>2.2.1 Compiling with autotools</h4> + <p>To install build prerequisites for 'autotools' tool chain:</p> + <pre> sudo apt-get install automake autoconf libtool build-essential</pre> <p>To build and install the binaries, run the following commands in /soundtouch directory:</p> <table border="0" cellpadding="0" cellspacing="4"> @@ -127,35 +129,28 @@ </tr> </tbody> </table> - <h4><b>2.2.1 Required GNU tools</b></h4> - <p> <span style="font-weight: bold;">Bash shell</span>, <span style="font-weight: bold;">GNU C++ compiler</span>, - <span style="font-weight: bold;">libtool</span>, <span style="font-weight: bold;">autoconf</span> and <span - style="font-weight: bold;">automake</span> tools - are required for compiling the SoundTouch library. These are usually - included with the GNU/Linux distribution, but if not, install these - packages first. For example, Ubuntu Linux can acquire and install - these with the following command:</p> - <pre><b>sudo apt-get install automake autoconf libtool build-essential</b></pre> - <h4><b>2.2.2 Problems with GCC compiler compatibility</b></h4> - <p>At the release time the SoundTouch package has been tested to - compile in GNU/Linux platform. However, If you have problems getting the - SoundTouch library compiled, try disabling optimizations that are specific for - x86 processors by running <b>./configure</b> script with switch - <blockquote> - <pre>--enable-x86-optimizations=no</pre> - </blockquote> - Alternatively, if you don't use GNU Configure system, edit file "include/STTypes.h" - directly and remove the following definition:<blockquote> - <pre>#define SOUNDTOUCH_ALLOW_X86_OPTIMIZATIONS 1</pre> - </blockquote> - - <h4><b>2.2.3 Compiling portable Shared Library / DLL version in GNU environment</b></h4> - <p> The GNU compilation does not automatically create a shared-library version of + <b>Compiling portable Shared Library / DLL version</b> + <p> The GNU autotools compilation does not automatically create a shared-library version of SoundTouch (.so or .dll) that features position-independent code and C-language api that are more suitable for cross-language development than C++ libraries.</p> <p> Use script "make-gnu-dll-sh" to build a portable dynamic library version if such is desired.</p> + <h4><b>2.2.2 Compiling with cmake</b></h4> + <p>'cmake' build scripts are provided as an alternative to the autotools toolchain.</p> + <p>To install cmake build prerequisites:</p> + <pre> sudo apt-get install libtool build-essential cmake</pre> + <p>To build:</p> + <pre> + cmake . + make -j + make install</pre> + <p>To compile the additional portable Shared Library / DLL version with the native C-language API:</p> + <pre> + cmake . -DSOUNDTOUCH_DLL=ON + make -j + make install</pre> + <h3>2.3. Building in Android</h3> <p>Android compilation instructions are within the source code package, see file "<b>source/Android-lib/README-SoundTouch-Android.html</b>" @@ -171,7 +166,7 @@ <h3>2.4. Building in Mac</h3> <p>Install autoconf tool as instructed in <a - href="http://macappstore.org/autoconf/">http://macappstore.org/autoconf/</a>.</p> + href="http://macappstore.org/autoconf/">http://macappstore.org/autoconf/</a>, or alternatively the 'cmake' toolchain.</p> <p>Then, build as described above in section "Building in Gnu platforms".</p> <hr> @@ -304,7 +299,8 @@ <br> This shouldn't be that critical parameter. If you reduce the DEFAULT_SEQUENCE_MS setting by a large amount, you might wish to try a - smaller value on this.</li> + smaller value on this. + </li> </ul> <p>Notice that these parameters can also be set during execution time with functions "<strong>TDStretch::setParameters()</strong>" and "<strong>SoundTouch::setSetting()</strong>".</p> @@ -415,7 +411,8 @@ quad-core ARM of Raspberry Pi2). </p> <p>See an external blog article with more detailed discussion about the <a href="http://www.softwarecoven.com/parallel-computing-in-embedded-mobile-devices/"> - SoundTouch OpenMP optimization</a>.</p> + SoundTouch OpenMP optimization</a>. + </p> <p>The parallel computing support is implemented using OpenMP spec 3.0 instructions. These instructions are supported by Visual C++ 2008 and later, and GCC v4.2 and later. Compilers that do not supporting OpenMP will ignore these @@ -439,7 +436,8 @@ </strong>settings. Set there "<strong>OpenMP support</strong>" to "<strong>Yes</strong>". Alternatively add <strong>/openmp</strong> switch to command-line - parameters</li> + parameters + </li> <li><strong>GNU</strong>: Run the configure script with "<strong>./configure --enable-openmp</strong>" switch, then run make as usually</li> <li><strong>Android</strong>: Add "<strong>-fopenmp</strong>" switches to compiler & linker @@ -605,6 +603,31 @@ <hr> <h2>5. Change History</h2> <h3>5.1. SoundTouch library Change History </h3> + <p><b>2.3.1:</b></p> + <ul> + <li>Adjusted cmake build settings and header files that cmake installs</li> + </ul> + <p><b>2.3.0:</b></p> + <ul> + <li>Disable setting "SOUNDTOUCH_ALLOW_NONEXACT_SIMD_OPTIMIZATION" by default. The original + purpose of this setting was to avoid performance penalty due to unaligned SIMD memory + accesses in old CPUs, but that is not any more issue in concurrent CPU SIMD implementations + and having this setting enabled can cause slight compromise in result quality. + </li> + <li>Bugfix: soundtouch.clear() to really clear whole processing pipeline state. Earlier + individual variables were left uncleared, which caused slightly different result if + the same audio stream were processed again after calling clear(). + </li> + <li>Bugfix: TDstretch to align initial offset position to be in middle of correlation search + window. This ensures that with zero tempo change the output will be same as input. + </li> + <li>Bugfix: Fix a bug in TDstrectch with too small initial skipFract value that occurred + with certain processing parameter settings: Replace assert with assignment that + corrects the situation. + </li> + <li>Remove OpenMP "_init_threading" workaround from Android build as it's not needed with concurrent + Android SDKs any more.</li> + </ul> <p><b>2.2:</b></p> <ul> <li>Improved source codes so that compiler can autovectorize them more effectively. @@ -973,4 +996,4 @@ <hr> </body> -</html> +</html> \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soundtouch-2.2/SoundTouchConfig.cmake.in new/soundtouch/SoundTouchConfig.cmake.in --- old/soundtouch-2.2/SoundTouchConfig.cmake.in 1970-01-01 01:00:00.000000000 +0100 +++ new/soundtouch/SoundTouchConfig.cmake.in 2021-09-07 17:26:53.000000000 +0200 @@ -0,0 +1,14 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/SoundTouchTargets.cmake") + +check_required_components(SoundTouch) + +get_target_property(SoundTouch_LOCATION SoundTouch::SoundTouch LOCATION) +message(STATUS "Found SoundTouch: ${SoundTouch_LOCATION}") + +if(@SOUNDTOUCH_DLL@) + check_require_components(SoundTouchDLL) + get_target_property(SoundTouchDLL_LOCATION SoundTouch::SoundTouchDLL LOCATION) + message(STATUS "Found SoundTouchDLL: ${SoundTouchDLL_LOCATION}") +endif() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soundtouch-2.2/configure.ac new/soundtouch/configure.ac --- old/soundtouch-2.2/configure.ac 2020-10-15 17:23:34.000000000 +0200 +++ new/soundtouch/configure.ac 2021-09-07 17:26:53.000000000 +0200 @@ -15,7 +15,7 @@ dnl Place - Suite 330, Boston, MA 02111-1307, USA # Process this file with autoconf to produce a configure script. -AC_INIT([SoundTouch], [2.2], [http://www.surina.net/soundtouch]) +AC_INIT([SoundTouch], [2.3.1], [http://www.surina.net/soundtouch]) dnl Default to libSoundTouch.so.$LIB_SONAME.0.0 LIB_SONAME=1 AC_SUBST(LIB_SONAME) @@ -33,7 +33,7 @@ # Compiler flags. Apply -ffast-math to allow gcc autovectorization # generate effective SIMD code. -CXXFLAGS="-O3 -ffast-math" +CXXFLAGS+=" -O3 -ffast-math" # Set AR_FLAGS to avoid build warning "ar: `u' modifier ignored since `D' is the default (see `U')" AR_FLAGS='cr' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soundtouch-2.2/include/STTypes.h new/soundtouch/include/STTypes.h --- old/soundtouch-2.2/include/STTypes.h 2020-10-15 17:23:34.000000000 +0200 +++ new/soundtouch/include/STTypes.h 2021-09-07 17:26:53.000000000 +0200 @@ -121,10 +121,10 @@ #endif - // If defined, allows the SIMD-optimized routines to take minor shortcuts - // for improved performance. Undefine to require faithfully similar SIMD - // calculations as in normal C implementation. - #define SOUNDTOUCH_ALLOW_NONEXACT_SIMD_OPTIMIZATION 1 + // If defined, allows the SIMD-optimized routines to skip unevenly aligned + // memory offsets that can cause performance penalty in some SIMD implementations. + // Causes slight compromise in sound quality. + // #define SOUNDTOUCH_ALLOW_NONEXACT_SIMD_OPTIMIZATION 1 #ifdef SOUNDTOUCH_INTEGER_SAMPLES @@ -166,7 +166,7 @@ #endif #endif -}; +} // define ST_NO_EXCEPTION_HANDLING switch to disable throwing std exceptions: // #define ST_NO_EXCEPTION_HANDLING 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soundtouch-2.2/include/SoundTouch.h new/soundtouch/include/SoundTouch.h --- old/soundtouch-2.2/include/SoundTouch.h 2020-10-15 17:23:34.000000000 +0200 +++ new/soundtouch/include/SoundTouch.h 2021-09-07 17:26:53.000000000 +0200 @@ -72,10 +72,10 @@ { /// Soundtouch library version string -#define SOUNDTOUCH_VERSION "2.2" +#define SOUNDTOUCH_VERSION "2.3.1" /// SoundTouch library version id -#define SOUNDTOUCH_VERSION_ID (20200) +#define SOUNDTOUCH_VERSION_ID (20301) // // Available setting IDs for the 'setSetting' & 'get_setting' functions: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soundtouch-2.2/include/soundtouch_config.h new/soundtouch/include/soundtouch_config.h --- old/soundtouch-2.2/include/soundtouch_config.h 1970-01-01 01:00:00.000000000 +0100 +++ new/soundtouch/include/soundtouch_config.h 2021-09-07 17:26:53.000000000 +0200 @@ -0,0 +1,3 @@ +// autotools configuration step replaces this file with a configured version. +// this empty file stub is provided to avoid error about missing include file +// when not using autotools build diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soundtouch-2.2/readme.md new/soundtouch/readme.md --- old/soundtouch-2.2/readme.md 2020-10-15 17:23:34.000000000 +0200 +++ new/soundtouch/readme.md 2021-09-07 17:26:53.000000000 +0200 @@ -9,7 +9,7 @@ Visit [SoundTouch website](https://www.surina.net/soundtouch) and see the [README file](README.html) for more information and audio examples. -### The latest stable release is 2.2 +### The latest stable release is 2.3.1 ## Example diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soundtouch-2.2/source/Android-lib/jni/Android.mk new/soundtouch/source/Android-lib/jni/Android.mk --- old/soundtouch-2.2/source/Android-lib/jni/Android.mk 2020-10-15 17:23:34.000000000 +0200 +++ new/soundtouch/source/Android-lib/jni/Android.mk 2021-09-07 17:26:53.000000000 +0200 @@ -1,18 +1,3 @@ -# Copyright (C) 2010 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soundtouch-2.2/source/Android-lib/jni/soundtouch-jni.cpp new/soundtouch/source/Android-lib/jni/soundtouch-jni.cpp --- old/soundtouch-2.2/source/Android-lib/jni/soundtouch-jni.cpp 2020-10-15 17:23:34.000000000 +0200 +++ new/soundtouch/source/Android-lib/jni/soundtouch-jni.cpp 2021-09-07 17:26:53.000000000 +0200 @@ -41,7 +41,7 @@ _errMsg = msg; } - +#if 0 // apparently following workaround not needed any more with concurrent Android SDKs #ifdef _OPENMP #include <pthread.h> @@ -90,6 +90,7 @@ } #endif +#endif // Processes the sound file static void _processFile(SoundTouch *pSoundTouch, const char *inFileName, const char *outFileName) @@ -162,8 +163,9 @@ // Call example SoundTouch routine verStr = SoundTouch::getVersionString(); - /// gomp_tls storage bug workaround - see comments in _init_threading() function! - _init_threading(false); + // gomp_tls storage bug workaround - see comments in _init_threading() function! + // update: apparently this is not needed any more with concurrent Android SDKs + // _init_threading(false); int threads = 0; #pragma omp parallel diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soundtouch-2.2/source/SoundTouch/InterpolateCubic.h new/soundtouch/source/SoundTouch/InterpolateCubic.h --- old/soundtouch-2.2/source/SoundTouch/InterpolateCubic.h 2020-10-15 17:23:34.000000000 +0200 +++ new/soundtouch/source/SoundTouch/InterpolateCubic.h 2021-09-07 17:26:53.000000000 +0200 @@ -41,7 +41,6 @@ class InterpolateCubic : public TransposerBase { protected: - virtual void resetRegisters(); virtual int transposeMono(SAMPLETYPE *dest, const SAMPLETYPE *src, int &srcSamples); @@ -57,6 +56,8 @@ public: InterpolateCubic(); + virtual void resetRegisters(); + int getLatency() const { return 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soundtouch-2.2/source/SoundTouch/InterpolateLinear.h new/soundtouch/source/SoundTouch/InterpolateLinear.h --- old/soundtouch-2.2/source/SoundTouch/InterpolateLinear.h 2020-10-15 17:23:34.000000000 +0200 +++ new/soundtouch/source/SoundTouch/InterpolateLinear.h 2021-09-07 17:26:53.000000000 +0200 @@ -45,8 +45,6 @@ int iFract; int iRate; - virtual void resetRegisters(); - virtual int transposeMono(SAMPLETYPE *dest, const SAMPLETYPE *src, int &srcSamples); @@ -61,6 +59,8 @@ /// rate, larger faster rates. virtual void setRate(double newRate); + virtual void resetRegisters(); + int getLatency() const { return 0; @@ -74,8 +74,6 @@ protected: double fract; - virtual void resetRegisters(); - virtual int transposeMono(SAMPLETYPE *dest, const SAMPLETYPE *src, int &srcSamples); @@ -87,6 +85,8 @@ public: InterpolateLinearFloat(); + virtual void resetRegisters(); + int getLatency() const { return 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soundtouch-2.2/source/SoundTouch/InterpolateShannon.h new/soundtouch/source/SoundTouch/InterpolateShannon.h --- old/soundtouch-2.2/source/SoundTouch/InterpolateShannon.h 2020-10-15 17:23:34.000000000 +0200 +++ new/soundtouch/source/SoundTouch/InterpolateShannon.h 2021-09-07 17:26:53.000000000 +0200 @@ -46,7 +46,6 @@ class InterpolateShannon : public TransposerBase { protected: - void resetRegisters(); int transposeMono(SAMPLETYPE *dest, const SAMPLETYPE *src, int &srcSamples); @@ -62,6 +61,8 @@ public: InterpolateShannon(); + void resetRegisters(); + int getLatency() const { return 3; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soundtouch-2.2/source/SoundTouch/RateTransposer.cpp new/soundtouch/source/SoundTouch/RateTransposer.cpp --- old/soundtouch-2.2/source/SoundTouch/RateTransposer.cpp 2020-10-15 17:23:34.000000000 +0200 +++ new/soundtouch/source/SoundTouch/RateTransposer.cpp 2021-09-07 17:26:53.000000000 +0200 @@ -78,6 +78,7 @@ #ifndef SOUNDTOUCH_PREVENT_CLICK_AT_RATE_CROSSOVER // Disable Anti-alias filter if desirable to avoid click at rate change zero value crossover bUseAAFilter = newMode; + clear(); #endif } @@ -193,6 +194,7 @@ outputBuffer.clear(); midBuffer.clear(); inputBuffer.clear(); + pTransposer->resetRegisters(); // prefill buffer to avoid losing first samples at beginning of stream int prefill = getLatency(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soundtouch-2.2/source/SoundTouch/RateTransposer.h new/soundtouch/source/SoundTouch/RateTransposer.h --- old/soundtouch-2.2/source/SoundTouch/RateTransposer.h 2020-10-15 17:23:34.000000000 +0200 +++ new/soundtouch/source/SoundTouch/RateTransposer.h 2021-09-07 17:26:53.000000000 +0200 @@ -59,8 +59,6 @@ }; protected: - virtual void resetRegisters() = 0; - virtual int transposeMono(SAMPLETYPE *dest, const SAMPLETYPE *src, int &srcSamples) = 0; @@ -85,6 +83,8 @@ virtual void setChannels(int channels); virtual int getLatency() const = 0; + virtual void resetRegisters() = 0; + // static factory function static TransposerBase *newInstance(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soundtouch-2.2/source/SoundTouch/TDStretch.cpp new/soundtouch/source/SoundTouch/TDStretch.cpp --- old/soundtouch-2.2/source/SoundTouch/TDStretch.cpp 2020-10-15 17:23:34.000000000 +0200 +++ new/soundtouch/source/SoundTouch/TDStretch.cpp 2021-09-07 17:26:53.000000000 +0200 @@ -92,11 +92,6 @@ bAutoSeqSetting = true; bAutoSeekSetting = true; - maxnorm = 0; - maxnormf = 1e8; - - skipFract = 0; - tempo = 1.0f; setParameters(44100, DEFAULT_SEQUENCE_MS, DEFAULT_SEEKWINDOW_MS, DEFAULT_OVERLAP_MS); setTempo(1.0f); @@ -223,6 +218,9 @@ inputBuffer.clear(); clearMidBuffer(); isBeginning = true; + maxnorm = 0; + maxnormf = 1e8; + skipFract = 0; } @@ -675,7 +673,7 @@ // Adjust processing offset at beginning of track by not perform initial overlapping // and compensating that in the 'input buffer skip' calculation isBeginning = false; - int skip = (int)(tempo * overlapLength + 0.5); + int skip = (int)(tempo * overlapLength + 0.5 * seekLength + 0.5); #ifdef ST_SIMD_AVOID_UNALIGNED // in SIMD mode, round the skip amount to value corresponding to aligned memory address @@ -689,7 +687,10 @@ } #endif skipFract -= skip; - assert(nominalSkip >= -skipFract); + if (skipFract <= -nominalSkip) + { + skipFract = -nominalSkip; + } } // ... then copy sequence samples from 'inputBuffer' to output: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soundtouch-2.2/source/SoundTouchDLL/SoundTouchDLL.h new/soundtouch/source/SoundTouchDLL/SoundTouchDLL.h --- old/soundtouch-2.2/source/SoundTouchDLL/SoundTouchDLL.h 2020-10-15 17:23:34.000000000 +0200 +++ new/soundtouch/source/SoundTouchDLL/SoundTouchDLL.h 2021-09-07 17:26:53.000000000 +0200 @@ -48,7 +48,7 @@ #else // GNU version - #ifdef DLL_EXPORTS + #if defined(DLL_EXPORTS) || defined(SoundTouchDLL_EXPORTS) // GCC declaration for exporting functions #define SOUNDTOUCHDLL_API extern "C" __attribute__((__visibility__("default"))) #else diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soundtouch-2.2/source/SoundTouchDLL/SoundTouchDLL.rc new/soundtouch/source/SoundTouchDLL/SoundTouchDLL.rc --- old/soundtouch-2.2/source/SoundTouchDLL/SoundTouchDLL.rc 2020-10-15 17:23:34.000000000 +0200 +++ new/soundtouch/source/SoundTouchDLL/SoundTouchDLL.rc 2021-09-07 17:26:53.000000000 +0200 @@ -69,12 +69,12 @@ BEGIN VALUE "Comments", "SoundTouch Library licensed for 3rd party applications subject to LGPL license v2.1. Visit http://www.surina.net/soundtouch for more information about the SoundTouch library." VALUE "FileDescription", "SoundTouch Dynamic Link Library" - VALUE "FileVersion", "2.2.0.0" + VALUE "FileVersion", "2.3.1.0" VALUE "InternalName", "SoundTouch" - VALUE "LegalCopyright", "Copyright (C) Olli Parviainen 2020" + VALUE "LegalCopyright", "Copyright (C) Olli Parviainen 2021" VALUE "OriginalFilename", "SoundTouch.dll" VALUE "ProductName", " SoundTouch Dynamic Link Library" - VALUE "ProductVersion", "2.2.0.0" + VALUE "ProductVersion", "2.3.1.0" END END BLOCK "VarFileInfo"
