summaryrefslogtreecommitdiff
path: root/media-libs/speexdsp/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-12-18 15:11:02 +0000
committerV3n3RiX <venerix@redcorelinux.org>2017-12-18 15:11:02 +0000
commit0fb71e0215ed52863e462cccef73c01aff44d43d (patch)
tree428fc3fa92f9c69ed02878e9b6151a9fb810e651 /media-libs/speexdsp/files
parent9bd54251864651f49e673a08aec9ef79cfe08f04 (diff)
gentoo resync : 18.12.2017
Diffstat (limited to 'media-libs/speexdsp/files')
-rw-r--r--media-libs/speexdsp/files/speexdsp-1.2_rc3-config_types.h.patch61
-rw-r--r--media-libs/speexdsp/files/speexdsp-1.2_rc3-overflow.patch66
2 files changed, 127 insertions, 0 deletions
diff --git a/media-libs/speexdsp/files/speexdsp-1.2_rc3-config_types.h.patch b/media-libs/speexdsp/files/speexdsp-1.2_rc3-config_types.h.patch
new file mode 100644
index 000000000000..835769dde707
--- /dev/null
+++ b/media-libs/speexdsp/files/speexdsp-1.2_rc3-config_types.h.patch
@@ -0,0 +1,61 @@
+From c470e2e89a6ca75b507437467692cd684b71a526 Mon Sep 17 00:00:00 2001
+From: Tanu Kaskinen <tanu.kaskinen@linux.intel.com>
+Date: Sun, 5 Jul 2015 18:10:19 +0300
+Subject: [PATCH] Don't rely on HAVE_STDINT_H et al. being defined
+
+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>
+---
+ configure.ac | 6 ++++++
+ include/speex/speexdsp_config_types.h.in | 8 +-------
+ 2 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 2cd2d1e..1de0c23 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -334,6 +334,12 @@ AC_SUBST([USIZE16])
+ AC_SUBST([SIZE32])
+ AC_SUBST([USIZE32])
+
++AS_IF([test "$ac_cv_header_stdint_h" = "yes"], [INCLUDE_STDINT="#include <stdint.h>"],
++ [test "$ac_cv_header_inttypes_h" = "yes"], [INCLUDE_STDINT="#include <inttypes.h>"],
++ [test "$ac_cv_header_sys_types_h" = "yes"], [INCLUDE_STDINT="#include <sys/types.h>"])
++
++AC_SUBST([INCLUDE_STDINT])
++
+ AC_CONFIG_FILES([
+ Makefile libspeexdsp/Makefile doc/Makefile SpeexDSP.spec
+ include/Makefile include/speex/Makefile speexdsp.pc
+diff --git a/include/speex/speexdsp_config_types.h.in b/include/speex/speexdsp_config_types.h.in
+index 02b82fd..5ea7b55 100644
+--- a/include/speex/speexdsp_config_types.h.in
++++ b/include/speex/speexdsp_config_types.h.in
+@@ -1,13 +1,7 @@
+ #ifndef __SPEEX_TYPES_H__
+ #define __SPEEX_TYPES_H__
+
+-#if defined HAVE_STDINT_H
+-# include <stdint.h>
+-#elif defined HAVE_INTTYPES_H
+-# include <inttypes.h>
+-#elif defined HAVE_SYS_TYPES_H
+-# include <sys/types.h>
+-#endif
++@INCLUDE_STDINT@
+
+ typedef @SIZE16@ spx_int16_t;
+ typedef @USIZE16@ spx_uint16_t;
+--
+2.1.4
+
diff --git a/media-libs/speexdsp/files/speexdsp-1.2_rc3-overflow.patch b/media-libs/speexdsp/files/speexdsp-1.2_rc3-overflow.patch
new file mode 100644
index 000000000000..3a413625085e
--- /dev/null
+++ b/media-libs/speexdsp/files/speexdsp-1.2_rc3-overflow.patch
@@ -0,0 +1,66 @@
+From a2133f5904ddb616b6578920bd2199f5accb484d Mon Sep 17 00:00:00 2001
+From: Tristan Matthews <tmatth@videolan.org>
+Date: Fri, 24 Apr 2015 15:55:32 -0400
+Subject: [PATCH] preprocess: prevent rare overflow on overlap-add
+
+Reported-by: Fabian Henze <flyser42@gmx.de>
+---
+ libspeexdsp/arch.h | 3 +++
+ libspeexdsp/preprocess.c | 2 +-
+ libspeexdsp/resample.c | 6 ------
+ 3 files changed, 4 insertions(+), 7 deletions(-)
+
+diff --git a/libspeexdsp/arch.h b/libspeexdsp/arch.h
+index 6b3bc5d..c2de991 100644
+--- a/libspeexdsp/arch.h
++++ b/libspeexdsp/arch.h
+@@ -101,6 +101,8 @@ typedef spx_word32_t spx_sig_t;
+ #define SIG_SHIFT 14
+ #define GAIN_SHIFT 6
+
++#define WORD2INT(x) ((x) < -32767 ? -32768 : ((x) > 32766 ? 32767 : (x)))
++
+ #define VERY_SMALL 0
+ #define VERY_LARGE32 ((spx_word32_t)2147483647)
+ #define VERY_LARGE16 ((spx_word16_t)32767)
+@@ -203,6 +205,7 @@ typedef float spx_word32_t;
+ #define DIV32(a,b) (((spx_word32_t)(a))/(spx_word32_t)(b))
+ #define PDIV32(a,b) (((spx_word32_t)(a))/(spx_word32_t)(b))
+
++#define WORD2INT(x) ((x) < -32767.5f ? -32768 : ((x) > 32766.5f ? 32767 : floor(.5+(x))))
+
+ #endif
+
+diff --git a/libspeexdsp/preprocess.c b/libspeexdsp/preprocess.c
+index c080581..3053eb5 100644
+--- a/libspeexdsp/preprocess.c
++++ b/libspeexdsp/preprocess.c
+@@ -980,7 +980,7 @@ EXPORT int speex_preprocess_run(SpeexPreprocessState *st, spx_int16_t *x)
+
+ /* Perform overlap and add */
+ for (i=0;i<N3;i++)
+- x[i] = st->outbuf[i] + st->frame[i];
++ x[i] = WORD2INT(ADD32(EXTEND32(st->outbuf[i]), EXTEND32(st->frame[i])));
+ for (i=0;i<N4;i++)
+ x[N3+i] = st->frame[N3+i];
+
+diff --git a/libspeexdsp/resample.c b/libspeexdsp/resample.c
+index 4940a64..4e47d67 100644
+--- a/libspeexdsp/resample.c
++++ b/libspeexdsp/resample.c
+@@ -83,12 +83,6 @@ static void speex_free (void *ptr) {free(ptr);}
+ #define M_PI 3.14159265358979323846
+ #endif
+
+-#ifdef FIXED_POINT
+-#define WORD2INT(x) ((x) < -32767 ? -32768 : ((x) > 32766 ? 32767 : (x)))
+-#else
+-#define WORD2INT(x) ((x) < -32767.5f ? -32768 : ((x) > 32766.5f ? 32767 : floor(.5+(x))))
+-#endif
+-
+ #define IMAX(a,b) ((a) > (b) ? (a) : (b))
+ #define IMIN(a,b) ((a) < (b) ? (a) : (b))
+
+--
+2.1.4
+