Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/speexdsp.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-02-27Fix memory leak in JitterBufferHEADmasterRobert Adam
This leak appears only when using a custom destroy callback (set via the JITTER_BUFFER_SET_DESTROY_CALLBACK ctl message). In order to understand how this happens, the following information needs to be known: - The jitter buffer implementation always overwrites a freed pointer with NULL and therefore can check for NULL in order to determine if a given packet's data buffer has been freed already. - When accessing the data in the buffer from the outside, you'll get a copy of the data when NOT using a custom destroy callback but simply a copy of the pointer to the original buffer, when using a custom destroy callback. Because of the latter, the query methods can't immediately free the original data buffer if a custom delete callback is used, as the returned pointer has to remain valid. In the other case (no custom callback), the data is freed immediately after it has been copied. The issue arises, because the data-pointer in the internal packet structure is UNCONDITIONALLY (aka: regardless of whether a custom callback is used or not) overwritten by NULL, indicating to all following code that the data buffer has been freed already. However, as described above this is not the case, if a custom destroy callback is used. Therefore, the data buffer will never be freed in that case (unless the calling code deletes the data itself. However, as there is no documentation that implies otherwise, it seems a fair assumption on the caller's site that the buffer will handle the lifetime of the data buffer even if a custom destroy callback has been registered. Therefore, the calling code wouldn't actually perform the freeing) causing a memory leak. This commit fixes this issue simply by making sure to not overwrite the data pointer with NULL, in case a custom destroy callback is used. Therefore, the data pointer is only set to NULL, when it is actually freed and otherwise the follow-up code inside the jitter buffer will know that the buffer hasn't been freed yet and can act accordingly.
2020-11-22Fix incorrect macro names in arch.hLRFLEW
Signed-off-by: Tristan Matthews <tmatth@videolan.org>
2020-10-02fixed-point: introduce MULT16_32_32 to handle unexpected types in MULT16_32_Q15Karl Tomlinson
2020-10-02fixed-point resample: remove 1-bit shift right before interpolationKarl Tomlinson
This was added in https://gitlab.xiph.org/xiph/speexdsp/-/commit/0dd7bfebe55abcac7e9acbca9d2ac2eddeee2b6f#5424d940076d3b85a3fc2d9f2dcf0d905c43abf0_466_472 to address truncation reported at http://lists.xiph.org/pipermail/speex-dev/2009-June/007277.html Truncation of the most-signficant bit was occuring on conversion to spx_word16_t in MULT16_32_Q15(). Changes to MULT16_32_Q15() mean this will no longer occur. The associated adjustment to the bit-shift before saturation was accidentally removed in https://gitlab.xiph.org/xiph/speexdsp/-/commit/0e5d424fdba2fd1c132428da38add0c0845b4178#6479ffd77de750bc70cf92af3f9b8a4c1e15a98a_473_478 which caused the output to have half the intended amplitude when the interpolating resampler was used. Reported by Andreas Pehrson.
2020-10-02fixed-point: don't truncate 32-bit arg to MULT16_32_Q15Karl Tomlinson
The 32-bit arg and return value have one bit more than required to represent +/-32767 with 15 fractional bits. Keeping the most significant bit allows saturation for 16-bit conversion to sometimes be delayed until after these operations.
2020-10-02fixed-point: Remove unused MULT16_32_Q1[1-4] macros and inlinesKarl Tomlinson
2020-10-02CI: add basic gitlab-ciTristan Matthews
This is largely based off of speex's.
2019-04-26configure: bump to 1.2.0Tristan Matthews
2019-02-02Ignore the m4 folder created by autogen.shThomas Perl
Signed-off-by: Tristan Matthews <tmatth@videolan.org>
2019-01-25Fix a stack smashing bugRoman Shterenzon
Signed-off-by: Tristan Matthews <tmatth@videolan.org>
2018-09-15resample: fix UINT32_MAX fallbackTristan Matthews
Reported by Mark Harris
2018-07-22resample: clean up, sync with opus-tools versionMark Harris
- Do not define macros, functions, or variables with file scope using names beginning with an underscore (these names are reserved for the implementation; see C89 section 7.1.3 or any later version) or that shadow other global declarations - Avoid declarations after statements (speex_assert) for C89 compat - Silence unused parameter warning in resampler_basic_zero - No need for the stack_alloc.h macros within #ifdef VAR_ARRAYS; use the standard C syntax - When OUTSIDE_SPEEX, define EXPORT if not already defined - Update URL to https
2018-07-18resample: port resample_neon.h to aarch64Frank Barchard
port optimized inner_product_single and WORD2INT(x) for fixed and floating point from 32 bit armv7 NEON to aarch64 NEON.
2018-02-27configure: Drop trailing spacesLuca Barbato
2018-02-27configure: Do not set arm CFLAGS if the target host is aarch64Luca Barbato
Unbreaks --enable-neon
2018-01-22update source path in visual studio build.undali
2017-08-08Resample.c: drop unused variableAvindra Goolcharan
Minor fix to delete a single unused variable Signed-off-by: Tristan Matthews <tmatth@videolan.org>
2017-01-22Create .travis.ymlStephen
2016-09-22codecs/speex: add checks in speex_resampler_init_frac/set_rate_frac.Dario Lombardo
Add checks to avoid den_rate and num_rate to be set to 0. Change-Id: Ia4880521e7ab73d0fdc44377f4badadb09365471 Reviewed-by: Peter Wu <peter@lekensteyn.nl> Reviewed-by: Anders Broman <a.broman58@gmail.com> Signed-off-by: Dario Lombardo <lomato@gmail.com> Signed-off-by: Tristan Matthews <tmatth@videolan.org>
2016-08-11arch: fix inconsistent types in WORD2INTTristan Matthews
2016-08-09mdf: drop duplicate definition of WORD2INTTristan Matthews
2016-08-02resample: fix broken linkTristan Matthews
Reported on Opus mailing list, see: http://lists.xiph.org/pipermail/opus/2016-July/003591.html
2016-06-04resampler: speex_assert is not defined OUTSIDE_SPEEXTristan Matthews
Fix regression from commit 4dba09347256131f12c80b443250abae4bbbe042 Reported by Lukáš Lalinský.
2016-05-10resample: remove redundant initializationTristan Matthews
speex_alloc already sets these arrays to 0. Reported by Jean-Yves Avenard <jyavenard@mozilla.com>
2016-05-10resampler: assert is sufficient for internal sanity checkTristan Matthews
2016-05-10Reduce likelihood of overflow and handle arithmetic overflow gracefully.Jean-Yves Avenard
From bugzilla.mozilla.org bug #1266260 Signed-off-by: Tristan Matthews <tmatth@videolan.org>
2016-05-10Handle memory allocation failures during initializationJean-Yves Avenard
Signed-off-by: Tristan Matthews <tmatth@videolan.org>
2016-04-29test: add test for dynamic sample rate changesWim Taymans
Add a test that resamples a sine wave with varying samplerates to create a sweep. Signed-off-by: Tristan Matthews <tmatth@videolan.org>
2016-03-06resample: avoid overflow in phase calculationWim Taymans
Make sure we don't overflow when calculating the phase for the new sample rate. Signed-off-by: Tristan Matthews <tmatth@videolan.org>
2016-03-06resample: Improve GCD calculationWim Taymans
Use Euclids algorithm to calculate the greatest common divisor to simplify the resample ratio fraction instead of the slow iterative method. Signed-off-by: Tristan Matthews <tmatth@videolan.org>
2015-09-26Remove spurious ACLOCAL_FLAGS variable from autogen.sh.Ron
This isn't needed (and isn't doing anything here anyway).
2015-07-05Don't rely on HAVE_STDINT_H et al. being definedTanu Kaskinen
Not everyone who includes speexdsp_config_types.h will have a test which defines those, and if we've chosen to use the stdint types at configure time then we know exactly which header(s) are available, so just choose the best one then and generate the header to use it. This patch, including the above text, is copied from a commit in the speex repository[1]. The original commit for speex was made by Ron <ron@debian.org>. [1] https://git.xiph.org/?p=speex.git;a=commitdiff;h=774c87d6cb7dd8dabdd17677fc6da753ecf4aa87 Signed-off-by: Tanu Kaskinen <tanu.kaskinen@linux.intel.com>
2015-05-05preprocess: prevent rare overflow on overlap-addTristan Matthews
Reported-by: Fabian Henze <flyser42@gmx.de>
2015-04-01remove trailing whitespaceTristan Matthews
2014-12-15configure: bump to 1.2rc3Tristan Matthews
2014-12-07correct INSTALL fileTristan Matthews
2014-12-07ensure resample_neon.h is distributedTristan Matthews
2014-12-07remove codec-only references from TODOTristan Matthews
2014-12-07update README.win32 for speexdspTristan Matthews
2014-12-07remove codec-only info from README.TrimediaTristan Matthews
2014-12-07removed codec-only README.TI-DSPTristan Matthews
2014-12-07dropped codec-only README.symbianTristan Matthews
2014-12-07README: drop references to codecTristan Matthews
2014-12-07Updated README.blackfin for speexdspTristan Matthews
2014-12-07ensure speex_buffer.h is included in dist but not installedTristan Matthews
2014-12-07fix configure typoTristan Matthews
2014-12-06configure: bump to 1.2rc2Tristan Matthews
2014-10-12configure: add --disable-examples optionTristan Matthews
2014-09-26doc: remove codec-specific documentationTristan Matthews
2014-08-17speexdsp: fix SSE2 supportTristan Matthews
_USE_SSE2 was only being defined for win32 builds on x86-64